比较二维和一维数组

时间:2014-07-17 01:46:06

标签: php multidimensional-array

我搜索了网站,但很难找到如何实现我希望的目标。我动态创建下面的数组,然后对其进行排序。既然我已经这样做了,我想将第二级键[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
        )

对此的任何指导将不胜感激。

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);

Demo