有时候,为了在很多php框架上兼容activerecord,我们有一个数组,然后创建一个适合它的临时数组。
因此,如果我们不需要制作临时数组,那就更优雅了。 我最喜欢的是array_map。 如果像这样的数组怎么办:
Array
(
[0] => Array
(
[0] => 2017-05-19
[1] => HEUNG-A_HCHIMINH_0010S
)
[1] => Array
(
[0] => 2017-05-19
[1] => KITI_BHUM
)
)
向
Array
(
[0] => Array
(
[date] => 2017-04-15
[vessel] => KMTC_HOCHIMINH
)
[1] => Array
(
[date] => 2017-04-15
[vessel] => OCL_NAGOYA
)
)
我需要使用array_map。
请告知。
答案 0 :(得分:1)
array_walk($arr, function(&$v) {
$v = array_combine(['date', 'vessel'], $v);
});
...或...
$arr = array_map('array_combine', array_fill(0, count($arr), ['date', 'vessel']), $arr);
...或...
$arr = array_map(function($a) {
return array_combine(['date', 'vessel'], $a);
}, $arr);
答案 1 :(得分:1)
以下是使用array_map
$arr = [
[
'2017-05-19',
'HEUNG-A_HCHIMINH_0010S'
],
[
'2017-05-19',
'KITI_BHUM'
]
];
echo '<pre>';print_r($arr);
$formatted = array_map( function($v) {
return [
'date' => $v[0],
'vessel' => $v[1]
];
}, $arr);
echo '<pre>';print_r($formatted);
答案 2 :(得分:0)
您可以使用array_combine()
将索引数组转换为关联数组。它将一个数组(日期/容器)与另一个数组合并为值。
array_map()
将用于迭代数组。
示例:
$keys_array = ['date', 'vessel'];
$new_array = array_map( function( $item ) {
return array_combine( $keys_array, $item );
}, $array );
答案 3 :(得分:0)
这应该这样做:
$newArr = array_map(function($a){
return ["date" => $a[0], "vessel" => $a[1]];
}, $oldArr);
var_dump($newArr);