就是大数组里面的第一个小数组永远是最长的 ... 如果在这个数组里有 false 值则补全其他为空白 ...
写了段示例代码如下
<?php
/* your array puts here ... primary key must be the first entry ... */
$arr = [
'id' => [ '1', false, '3', '4' ],
'name' => [ 'zhang', 'li', 'du' ]
];
/* get all key names ... */
$keys = array_keys( $arr );
/* use a different way to solve this ... */
var_export( array_reduce( $arr,
function( & $result, $current ) use ( & $keys ) {
/* get current key name ... */
$key = array_shift( $keys );
/* first run ..? */
if ( ! isset( $result ) )
/* initialize a new array with primary key... */
$result = array_map( function( $value ) use ( $key ) {
/* just packing value as an array ... */
return [ $key => $value ];
/* value based on $current ... known as first entry of $arr ... */
}, $current );
/* when the array is built ... add new keys into it ... */
else foreach ( $result as $num => & $value )
/* leave blank when primary key is false or entry is empty ... */
$value[$key] = ( false !== current( $value ) ) ?
array_shift( $current ) ?: '' : '';
/* send the new array back ... */
return $result;
} ) );
原理就是根据原数组里面的第一个小数组建立主键 ... 然后根据主键把所有元素拼合在一起 ...
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。