2017-10-12 95 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"]]