2014-01-26 167 views
-1

我有以下陣列PHP的數組中刪除獨特陣列而不除去鍵

這是通過$ product_attribute陣列

Array 
(
    [Color] => Array 
     (
      [950981-YB051314-01] => Green 
      [950981-YB051314-02] => Green 
      [950981-YB051314-03] => Green 
     ) 

    [Size] => Array 
     (
      [950981-YB051314-01] => M 
      [950981-YB051314-02] => L 
      [950981-YB051314-03] => XL 
     ) 

) 

我試圖這樣

<?php foreach($product_attribute as $keys=>$value) { ?> 
    <ul class="selections"> 
    <?php $skus = array(); ?> 
    <?php foreach(array_unique($value) as $key => $vals) { ?> 
    <?php foreach($value as $key => $val) { ?> 
    <?php array_push($skus, $key); ?> 
    <?php } ?> 
    <?php $sku = implode(';', array_unique($skus)); ?> 
    <li data-sku="<?php echo $keys; ?>"><?php echo rtrim($vals, ','); ?></li> 
    <?php } ?> 
    </ul> 
<?php } ?> 

但上面的代碼產生中產生像

<li data-sku="950981-01;950981-02;950981-03">Green</li> 
<li data-sku="950981-01;950981-02;950981-03">M</li> 
<li data-sku="950981-01;950981-02;950981-03">L</li> 
<li data-sku="950981-01;950981-02;950981-03">XL</li> 

考慮以下按預期輸出

<li data-sku="950981-01;950981-02;950981-03">Green</li> 
<li data-sku="950981-01">M</li> 
<li data-sku="950981-02">L</li> 
<li data-sku="950981-03">XL</li> 

任何人都可以請解釋如何處理這種情況。

+1

你喜歡用PHP標籤,不是嗎? –

+0

當我執行你的代碼時它得到錯誤..:p –

+0

我不知道你爲什麼添加array_unique($ value)? –

回答

1

問題看起來像是「按鍵組鍵」。做到這一點:

$product_attribute = array(
    'color' => array(
     '1' => 'green', 
     '2' => 'green', 
     '3' => 'green' 
    ), 

    'size' => array(
     '4' => 'M', 
     '5' => 'L', 
     '6' => 'XL' 
    ), 
); 


foreach($product_attribute as $param){ 
    $values = array_unique($param); // fetch unique values - green,M,L,XL 

    foreach($values as $value){ 
     $keys = array_keys($param,$value); // keys by unique value 
     print '<li data-sku="'.implode(';',$keys).'">'.$value.'</li>'; 
    } 
} 

//OUTPUT 
<li data-sku="1;2;3">green</li> 
<li data-sku="4">M</li> 
<li data-sku="5">L</li> 
<li data-sku="6">XL</li> 
+0

@Editme在這裏只更改鍵(1,2,3 ...)到你的('950981-01',... – voodoo417

+0

雅非常感謝 – kndwsu