2017-10-12 61 views
-1

我有一個數組問題。 在我有15,000行的數組中,我有列和關聯的名稱和值(sku)。 我需要顯示所有的名字,並進行單獨上它,如果SKU等於或不就是目前我的產品頁面循環foreach與不同?

Exemple : array = [ 'code' => 'name1' , 
       'sku' => '123456', 
       'code' => 'name1', 
       'sku' => '456789', 
       'code' => 'name2', 
       'sku' => '4565999'] 

等.......... 的SKU如果sku等於sku或不在我的頁面產品中,我想在此顯示不同的代碼。

+6

該數組是無效的。由於鍵必須是唯一的,因此不能使用具有相同鍵的數組。 –

+0

我可以向你保證,你不會推它,因爲它是無效的。一個數組看起來不像那樣。 –

+0

即使Magento不會看到那些重複的鍵控項 –

回答

0

首先,你需要陣列結構的一個這樣的數組:

$arr = [ 
    [ 'code' => 'name1', 'sku' => '123456' ], 
    [ 'code' => 'name2', 'sku' => '456789' ], 
    [ 'code' => 'name3', 'sku' => '4565999' ], 
    . 
    . 
    . 

然後您可以篩選數組是這樣的:

$existing_items_on_array = array_filter($arr, 
    function($item) use ($existing_items_on_page){ 
     return array_search($item["sku"], $existing_items_on_page) !== false; 
}); 

或者更好的(你還需要構建一個陣列就像第一個解決方案):

我假設你的SKU是唯一的。爲什麼不讓它們成爲數組鍵?

$item_codes = []; 
foreach($arr as $item){ 
    $item_codes[$item["sku"]] = $item["code"]; 
} 

那麼你會被訪問任何元素的這樣的代碼:

echo $item_codes[$product["sku"]]