Php 比较二维和一维数组
我已经搜索了这个网站,但很难找到如何实现我希望的目标。我正在动态创建下面的数组,然后对其进行排序。现在我已经完成了,我想比较一下二级键[35659]等等。。复制到另一个数组中的值Php 比较二维和一维数组,php,multidimensional-array,Php,Multidimensional Array,我已经搜索了这个网站,但很难找到如何实现我希望的目标。我正在动态创建下面的数组,然后对其进行排序。现在我已经完成了,我想比较一下二级键[35659]等等。。复制到另一个数组中的值 Array ( [11] => Array ( [35659] => 1 [35735] => 2 ) [199] => Array ( [35659] =&g
Array
(
[11] => Array
(
[35659] => 1
[35735] => 2
)
[199] => Array
(
[35659] => 1
[35699] => 1
)
[118] => Array
(
[35659] => 1
)
)
这是另一个保存产品id的数组
Array
(
[0] => 35659
[1] => 35699
[2] => 35735
)
因此,我试图实现的是,当第二个数组值存在于第一个数组中时,在满足每个productid后打印它们,一旦我想要中断
因此,我期望的结果如下,因为产品id数组中的所有三个值都已满足
[11] => Array
(
[35659] => 1
[35735] => 2
)
[199] => Array
(
[35699] => 1
)
对此,如有任何指导,将不胜感激 遍历第一个数组,如果它在第二个数组中,则添加一个元素,同时计算您添加了多少个元素。如果已经添加了所有元素,请中断迭代
$results = array();
$count = 0;
foreach($array as $key => $subarray) {
foreach($subarray as $subkey => $subvalue) {
if(in_array($subkey,$second_array)) {
$results[$key][$subkey] = $subvalue;
if(++$count == count($second_array))
break 2;
}
}
}
print_r($results);
太棒了,谢谢。2在“break 2”中做了什么?@user2433317如果没有2,它只会中断内部foreach并移动到外部foreach的下一个迭代。2号断开了外侧的foreach