双Foreach数组

时间:2015-02-23 01:00:14

标签: php

我有两个阵列:

array product_item('1','22','35');
array product_subitems(22 => array('35'=>'1','42'=>'15'), 35 => array('60'=>'10','69'=>'20'))

如何获取数组product_subitems'值基于我的数组product_items?

我尝试过类似的事情:

foreach($product_keys as $p_key) {
   foreach($product_items as $item_key) {
      echo product_keys[$p_key][$item_key];
   } 
}

但这是一个非常糟糕的代码而且无法正常工作。

我只想根据第一个数组的键从第二个数组中获取数组键和值。

3 个答案:

答案 0 :(得分:1)

只需遍历第一个并使用每个值从第二个值中检索正确的数组。像这样:

foreach ($product_item as $pi){
    print_r($product_subitems[$pi]);
}

演示1:http://codepad.org/LDZjHjQH

您可以根据需要修改此项。例如,您可能想要这样的东西:

foreach ($product_item as $pi){
    echo "Product item " . $pi . ": ";
    if (isset($product_subitems[$pi])) {
        foreach ($product_subitems[$pi] as $spi) {
            echo $spi . " ";
        }
    }    
}

演示2:http://codepad.org/eTe2ga3d

答案 1 :(得分:0)

如果我理解正确,你想要的是子数组项中的键吗?

所以,基于此,你需要这样的东西:

foreach($product_items as $i) {
    if(isset($product_subitems[$i])) {
        foreach($product_subitems as $item) {
             foreach($item as $key => $value) {
                 echo "{$key} = {$value} \n";
             }
        }
    }
}

Example


如果您不关心product_subitems'键,然后您可以使用它来获取值:

foreach($product_items as $i) {
    if(isset($product_subitems[$i])) {
        $values = array_values($product_subitems[$i]);
        print_r($values);
    }
}

Example

答案 2 :(得分:0)

$product_item = array('1','22','35');   
$product_subitems = array(22 => array('35'=>'1','42'=>'15'), 35 => array('60'=>'10','69'=>'20'));

foreach($product_item as $item)
   if(isset($product_subitems[$item]))
      print_r($product_subitems[$item]);