我搜索了网站,但很难找到如何实现我希望的目标。我动态创建下面的数组,然后对其进行排序。既然我已经这样做了,我想将第二级键[35659]等与另一个数组中的值进行比较。
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
)
所以我想要实现的是当第二个数组值存在于第一个数组中时,一旦我想要破解,每次产生时都会打印出来。
所以我想要的结果如下所示,因为产品id数组中的所有三个值都已满足。
[11] => Array
(
[35659] => 1
[35735] => 2
)
[199] => Array
(
[35699] => 1
)
对此的任何指导将不胜感激。
答案 0 :(得分:0)
遍历第一个数组并添加一个元素(如果它在第二个数组中),同时保持计算已添加的元素数量。如果您已添加所有元素,请中断迭代。
$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);