循环使用不同的foreach?

时间:2017-10-12 14:39:19

标签: php foreach

我对数组有疑问。 在我的包含15,000行的数组中,我有包含相关名称和值(sku)的列。 我需要显示所有名称,如果sku与我产品页面上的sku相同或不相同,则单独显示该名称

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

等.......... 如果sku等于我的页面产品中的sku,我想在此显示不同的代码。

1 个答案:

答案 0 :(得分: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"]]