SMARTY删除数组值相同的值

问题描述:

我试图找到类似但未成功的东西。如果$ color.code重复,我需要删除一个数组。SMARTY删除数组值相同的值

代码:

foreach $element.modifications as $modification_id => $modification} 
    {if $modification != null} 
     {foreach $modification.colors as $color} 
      <span class="color" style="background:#{$color.code};"></span> 
     {/foreach} 
    {/if} 
{/foreach} 

当调试($颜色)我得到的数组:

阵列 ( [代码] => 333333 )

阵列 ( [code] => 333333 )

阵列 ( [代码] => ABDB25 )

我需要得到只有一次,如果代码是相同的。有人可以帮助我或举例说明我能做到吗?

在构建阵列时,使您的密钥为code$modification['colors'][$color['code']] = $color;。它会自动创建唯一键阵列。


另一种选择是使用code池:

$pool = []; 
$newColors = []; 

foreach ($modification['colors'] as $color) { 
    if (!isset($pool[$color['code']])) { 
     $newColors[] = $color; 
     $pool[$color['code']] = true; 
    } 
} 

$modification['colors'] = $newColors; 
+0

谢谢您的回答。 –

+0

@PauliusJasiulis接受答案,如果它满足你 – Justinas