重组数组时遇到问题。
我正在将数据批量上传(更新)到数据库。所以我有一个像这样的 3 数组。
Array ( [0] => aaa [1] => ccc [2] => eee [3] => ggg )
Array ( [0] => bbb [1] => ddd [2] => fff [3] => hhh )
Array ( [0] => 1662 [1] => 1663 [2] => 1664 [3] => 1665 )
所以我想要的是,我需要将数组重组为下面给定的顺序。然后上传(更新)到数据库。
$data = array(
array(
'title' => 'aaa' ,
'Info' => 'bbb' ,
'id' => '1662'
),
array(
'title' => 'ccc' ,
'Info' => 'ddd' ,
'id' => '1663'
),
array(
'title' => 'eee' ,
'Info' => 'fff' ,
'id' => '1664'
),
array(
'title' => 'ggg' ,
'Info' => 'hhh' ,
'id' => '1665'
)
);
$this->db->update_batch('mytable', $data,'id');
如何重组数组?
注意:当选择不同类型时,数组内容会不断变化。
例如:
array(
'title' => 'Any value' ,
'Info' => 'Any value' ,
'id' => 'Any Id'
这可能对你有帮助
[akshay@localhost tmp]$ cat test.php
<?php
$a1 = array('aaa','ccc','eee','ggg');
$a2 = array('bbb','ddd','fff','hhh');
$a3 = array(1662,1663,1664,1665);
// Output
$output = array_map(function($a,$b,$c){ return array('title'=>$a,'Info'=>$b,'id'=>$c);},$a1,$a2,$a3)
print_r ( $output );
// Here add your update statement
// $this->db->update_batch('mytable', $output,'id');
?>
输出
[akshay@localhost tmp]$ php test.php
Array
(
[0] => Array
(
[title] => aaa
[Info] => bbb
[id] => 1662
)
[1] => Array
(
[title] => ccc
[Info] => ddd
[id] => 1663
)
[2] => Array
(
[title] => eee
[Info] => fff
[id] => 1664
)
[3] => Array
(
[title] => ggg
[Info] => hhh
[id] => 1665
)
)
迭代调用
get_defined_vars()
提供了简洁的优雅。只需根据您希望的关联二级键命名列参数即可。
代码:(演示)
$a1 = ['aaa', 'ccc', 'eee', 'ggg'];
$a2 = ['bbb', 'ddd', 'fff', 'hhh'];
$a3 = [1662, 1663, 1664, 1665];
var_export(
array_map(fn($title, $Info, $id) => get_defined_vars(), $a1, $a2, $a3)
);
相关: