使用 array_fill_keys 和 array_walk 分配数组键

我的问题是,我想组合两个数组,一个包含表的标题,另一个包含数据。我想创建一个以列名作为键的关联数组。不知何故,我得到了意想不到的结果(键应用于错误的数组)并且无法弄清楚原因。


$header = array(array('Name','Position','Salary'));

$data  = array(

    array('John','Manager','30000'),

    array('Cindy','Associate','50000'),

    array('Paul','Staff','20000'),

    array('Mandy','Staff','100000')

    );

array_walk($data, function(&$value, &$key) use ($header) {$value = array_fill_keys($header[0],$value);});

var_dump($data);

这是在线版本的链接:http : //sandbox.onlinephpfunctions.com/code/5ad09dbf2c0af5d87f17c64118b9c68a7374a666


我想要实现的是, $data 中的每一行都有 $header[0] 作为键。


冉冉说
浏览 146回答 2
2回答

慕的地10843

您可以使用 array_shift 和 array_combine 一起将索引加 1,$header = array_shift($header); // to index 1 up    array_walk($data, function(&$value, &$key) use ($header) {    $value = array_combine($header,$value);});print_r($data);您将 array_fill_keys 用于错误的目的,

小唯快跑啊

用 array_combinearray_walk($data, function(&$value, &$key) use ($header) {$value = array_combine($header[0],$value);});
打开App,查看更多内容
随时随地看视频慕课网APP