比较二维和一维数组


Comparing 2-Dimensional and 1-Dimensional Arrays

我已经搜索了网站,但很难找到如何实现我所希望的。我正在动态地创建下面的数组,然后对它进行排序。现在我已经完成了,我想比较二级键[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
)

所以我想要实现的是,当第二个数组值存在于第一个数组中时,一旦每个productid满足,就把它们打印出来,一旦我想要打破。

所以我想要的结果如下所示,因为product 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);