Foreach over multiple arrays

时间:2015-08-28 03:59:12

标签: php arrays foreach

我有两个数组,如果$ read_two中存在键,我想从两者中打印值

示例代码

$array_one = [
    'one' => 'foo',
    'two' => 'bar'
];

$array_two = [
    'one' => 'view_foo',
];

我使用此代码

foreach($array_one as $array_key_one => $val_array_one)
{
    foreach($array_two as $array_key_two => $val_array_two)
    {
        if($array_key_one == $array_key_two)
        {
            echo $val_array_two;
        }
        else
        {
            echo $val_array_one;
        }
    }
}

但我只想使用一个 foreach

期望的结果

bar,view_foo

如何解决?

2 个答案:

答案 0 :(得分:4)

如果:

foreach($array_one as $array_key_one => $val_array_one)
{
    if(isset($array_two[$array_key_one] ))
    {
       echo $array_two[$array_key_one];
    }
    else
    {
       echo $val_array_one;
    }
}

答案 1 :(得分:1)

你可以交叉数组键,然后迭代结果:

foreach (array_intersect_key($array1, $array2) as $key => $value1) {
    echo $value1, ' ', $array2[$key], ' ' ;
} 
  

array_intersect_key返回一个数组,其中包含所有参数中包含键的array1的所有条目。