Php 按其他数组的值筛选多维数组
请帮助我了解如何使用其他数组值作为第一个数组的键来成功筛选多维数组Php 按其他数组的值筛选多维数组,php,arrays,multidimensional-array,filtering,Php,Arrays,Multidimensional Array,Filtering,请帮助我了解如何使用其他数组值作为第一个数组的键来成功筛选多维数组 $multidimensional = Array ( [0] => Array('var1' => val1), [1] => Array('var2' => val2), [2] => Array('var3' => val3),
$multidimensional = Array (
[0] => Array('var1' => val1),
[1] => Array('var2' => val2),
[2] => Array('var3' => val3),
[3] => Array('val4' => val4)
);
$filter = Array(1, 3);
最终结果应该是:
$multidimensional = Array (
[1] => Array('var2' => val2),
[3] => Array('val4' => val4)
);
它应该类似于array_slice或其他方法,以便于执行此类任务。提前谢谢你 您可以使用以下功能:
$result = array_intersect_key($multidimensional, array_flip($filter));
您可以使用以下功能:
$result = array_intersect_key($multidimensional, array_flip($filter));
用一个小例子来扩展我的评论
<?php
$arrayOne = [
1 => ['foo' => 'bar'],
2 => ['foo' => 'bar'],
3 => ['foo' => 'bar'],
4 => ['foo' => 'bar'],
];
$arrayTwo = [1 => [], 3 => []];
print_r(array_intersect_key($arrayOne, $arrayTwo));
用一个小例子来扩展我的评论
<?php
$arrayOne = [
1 => ['foo' => 'bar'],
2 => ['foo' => 'bar'],
3 => ['foo' => 'bar'],
4 => ['foo' => 'bar'],
];
$arrayTwo = [1 => [], 3 => []];
print_r(array_intersect_key($arrayOne, $arrayTwo));
使用array\u diff\u键
和array\u flip
功能的另一个变体:
$multidimensional = array_diff_key($multidimensional, array_diff_key($multidimensional, array_flip($filter)));
print_r($multidimensional);
输出:
Array
(
[1] => Array
(
[var2] => val2
)
[3] => Array
(
[val4] => val4
)
)
使用阵列差异键和阵列翻转功能的另一种变体:
$multidimensional = array_diff_key($multidimensional, array_diff_key($multidimensional, array_flip($filter)));
print_r($multidimensional);
输出:
Array
(
[1] => Array
(
[var2] => val2
)
[3] => Array
(
[val4] => val4
)
)
谢谢,这正是我需要的;)萨纳塔特!:)谢谢,这正是我需要的;)萨纳塔特!:)