php - php如何使用2个数组创建自定义数组
问题描述
我需要一些关于以下数组形成的帮助。我想使用 2 个数组创建一个自定义数组。
这是我的第一个数组:-
Array
(
[0] => Array
(
[0] => 26
[1] => 0.0000000000000000
)
[1] => Array
(
[0] => 25
[1] => 0.0000000000000000
)
[2] => Array
(
[0] => 24
[1] => 0.0000000000000000
)
)
这是我的第二个数组:-
Array
(
[0] => Array
(
[0] => 24
)
[1] => Array
(
[0] => 26
)
)
我想要如下的最终数组。有人可以建议如何形成这个数组。
Array
(
[0] => Array
(
[0] => 26
[1] => 0.0000000000000000
)
[2] => Array
(
[0] => 24
[1] => 0.0000000000000000
)
)
我在下面使用过,但我希望它没有 foreach。
$finalArray = array();
foreach ($secondArray as $key => $value) {
$key = array_search($value[0], array_column($firstArray, 0));
$finalArray[] = $firstArray[$key];
}
解决方案
您可以使用array_filter()
:
$finalArray = array_filter($firstArray,
fn($item) => in_array($item[0], array_column($secondArray, 0))
);
首先计算允许值可能更有效:
$allowedValues = array_column($secondArray, 0);
$finalArray = array_filter($firstArray, fn($item) => in_array($item[0], $allowedValues));
在 PHP 7.4 之前,您必须使用use()
将变量传递给匿名函数:
$finalArray = array_filter($firstArray,
function($item) use($secondArray) {
return in_array($item[0], array_column($secondArray, 0));
}
);
推荐阅读
- java - 尝试使用 while 循环打印 LinkedList 时出现无限循环
- bash - sudoless 无密码脚本
- angular - 单元测试用例以茉莉角覆盖 router.navigate.then
- node.js - 未能查找视图
- java - Thread.sleep 没有被 PowerMockito 嘲笑
- python - 如何计算数据框中连续的最大数量?
- javascript - 当用户单击 MVC5 中的浏览器后退按钮时,在检索数据时面临问题
- debugging - 在 Xcode 12 中调试和运行 PO 命令时抛出错误
- css - 在 React Native 中使用高度设置背景颜色
- json - 将 JSON 数据展平为单个列