2017-08-08 107 views
0

我試圖找到類似但未成功的東西。如果$ 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 )

我需要得到只有一次,如果代碼是相同的。有人可以幫助我或舉例說明我能做到嗎?

回答

0

在構建陣列時,使您的密鑰爲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