max(数组 2,数组 3)
新的数组例如
$arr1 = ['bot','bot2','',''];
$arr2 = ['size1','size2'];
$arr3 = ['a','b','c'];
生成的新数组是:
array(
0 => array('bot','bot2','size1','a'),
1 => array('bot','','size2','b'),
2 => array('bot','','','c'),
);
原数据
$tmp_arr = array('bot1','bot2','bot3','bot4','bot5','bot6','bot7','','','bot10','bot11','bot12','bot13','bot14','bot15','bot16','bot17','bot18', '','','bot21');
$arr1=array('size1','size2');
$arr2=array('a','b','c','d');
填充后数组
$result = array(
array('bot1','bot2','bot3','bot4','bot5','bot6','bot7','1','size1','bot10','bot11','bot12','bot13','bot14','bot15','bot16','bot17','bot18', 'a','1','bot21'),
array('bot1','bot2','bot3','bot4','bot5','bot6','bot7','2','size2','bot10','bot11','bot12','bot13','bot14','bot15','bot16','bot17','bot18', 'b','2','bot21'),
array('bot1','bot2','bot3','bot4','bot5','bot6','bot7','','','bot10','bot11','bot12','bot13','bot14','bot15','bot16','bot17','bot18', 'c','3','bot21'),
array('bot1','bot2','bot3','bot4','bot5','bot6','bot7','','','bot10','bot11','bot12','bot13','bot14','bot15','bot16','bot17','bot18', 'd','4','bot21'),
);
1
ysc3839 2020-04-19 07:01:38 +08:00 1
```
function myfunc($arr1, $arr2, $arr3) { $first = array_shift($arr1); return array_map(function(...$arr) use ($first) { foreach ($arr as &$value) { if ($value == null) $value = ''; } array_unshift($arr, $first); return $arr; }, $arr1, $arr2, $arr3); } $arr1 = ['bot','bot2','','']; $arr2 = ['size1','size2']; $arr3 = ['a','b','c']; var_dump(myfunc($arr1, $arr2, $arr3)); ``` result: array(3) { [0]=>array(4) { [0]=>string(3) "bot" [1]=>string(4) "bot2" [2]=>string(5) "size1" [3]=>string(1) "a" } [1]=>array(4) { [0]=>string(3) "bot" [1]=>string(0) "" [2]=>string(5) "size2" [3]=>string(1) "b" } [2]=>array(4) { [0]=>string(3) "bot" [1]=>string(0) "" [2]=>string(0) "" [3]=>string(1) "c" } } |
3
ysc3839 2020-04-19 07:44:40 +08:00 1
根据你给的输入和输出,猜测是把 $arr1[0] 去除,然后 $arr1-3 看作矩阵的行进行转置,再把 $arr1[0] 插入第一列。
把数组第一个元素去掉可以使用 array_shift 。 矩阵转置可以使用两层循环,但是经过搜索发现使用 array_map 也可以实现转置,而且会自动补齐缺失的元素。但是自动补的是 null,所以预先处理一下,把 null 替换成 '',最后把 $arr1[0] 插入到开头即可。 |