一个PHP数组合并问题

合并数组

数组一:[1,2,3]
数组二:[55,66,77]

合并上面两个数组得到下面数组的奇淫技巧:

[
    ['boss' => 1, 'order' => 55],
    ['boss' => 2, 'order' => 66],
    ['boss' => 3, 'order' => 77],
]
阅读 1k
1 个回答

使用 array_map

<?php

$arr1 = [1, 2, 3];
$arr2 = [55, 66, 77];

$result = array_map(function ($boss, $order) {
    return compact('boss', 'order');
}, $arr1, $arr2);

var_dump($result);

/*
array(3) {
  [0] =>
  array(2) {
    'boss' =>
    int(1)
    'order' =>
    int(55)
  }
  [1] =>
  array(2) {
    'boss' =>
    int(2)
    'order' =>
    int(66)
  }
  [2] =>
  array(2) {
    'boss' =>
    int(3)
    'order' =>
    int(77)
  }
}
 */

如果你是 php7.4+ 还可以这样

$arr1 = [1, 2, 3];
$arr2 = [55, 66, 77];
$result = array_map(fn($boss, $order) => compact('boss', 'order'), $arr1, $arr2);

var_dump($result);

解析: array_map 第一个参数接受一个 callable 类型,可以是任何可调用结构,第二个参数接受一个数组。

除此之外, array_map 还接受额外的数组,直接作为参数传入,当遍历时,将会把每一项传入到第一个参数的 callable 中的参数中去,并按照给定的数组顺序传递。

需要注意的是,遍历的次数是最长数组的长度,当其他数组长度不足时,会以 null 进行填充。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏