从包含未知行数的数组中获取常见行值[重复]

问题描述 投票:0回答:2

我有一个像这样的二维数组:

$array = 
    1 => [1, 2, 3],
    2 => [2, 3, 4],
    // etc.
];

现在我想要所有行中的所有数字。

我想使用

array_intersect($array[1],$array[2])
来实现此目的,但此数组中可能有 2 或 3 或 4 行。是否可以创建一个像
$list_of_array = $array[1],$array[2];
这样的字符串并制作一个
$result = array_intersect($list_of_arrays)

php arrays multidimensional-array filtering array-intersect
2个回答
1
投票

对于这种具有可变数量数组的行为,您可以使用

call_user_func_array
:

$array_list = array($array[1],$array[2],$array[3]);
$intersect = call_user_func_array('array_intersect',$aarray_list);

测试

$array_list = array(array(1,2,3), array(2,3,4,5), array(3,7,"a"));
$result = call_user_func_array('array_intersect',$array_list);
print_r($result);

退货

Array ( [2] => 3 )

1
投票

是的,您可以使用

call_user_func_array()
:

顾名思义,您可以使用此函数来调用用户函数并将其与给定数组中的参数一起应用:

$result = call_user_func_array('array_intersect',$list_of_arrays);

这里,第一个参数是回调函数的名称,第二个参数是我们的数组。

假设您的

$array
已填充输入数组,您可以执行以下操作:

$list_of_arrays = $array;
$result = call_user_func_array('array_intersect', $list_of_arrays);

输出:

Array
(
    [2] => 3
)

演示!

© www.soinside.com 2019 - 2024. All rights reserved.