Home > Article > Backend Development > php索引数组按需处理成关联数组?
问题可能有些描述的不是很好,我简单举个栗子
<code>//需求 $arr = array('100', '101', '102', '103', '104', '105'); $newArr = array(array('id'=>'100'), array('id'=>'101'), array('id'=>'102'), array('id'=>'103'), array('id'=>'104'), array('id'=>'105')); //我的处理方式是 $newArr = []; foreach($arr as $val) { $newArr[] = array('id'=>$val); } </code>
上述方法可以实现我的需求,还有什么其他方式可以实现?我找到一个内置函数array_chunk($arr, 1, true)
但是,这个键名是设置不了的。
问题可能有些描述的不是很好,我简单举个栗子
<code>//需求 $arr = array('100', '101', '102', '103', '104', '105'); $newArr = array(array('id'=>'100'), array('id'=>'101'), array('id'=>'102'), array('id'=>'103'), array('id'=>'104'), array('id'=>'105')); //我的处理方式是 $newArr = []; foreach($arr as $val) { $newArr[] = array('id'=>$val); } </code>
上述方法可以实现我的需求,还有什么其他方式可以实现?我找到一个内置函数array_chunk($arr, 1, true)
但是,这个键名是设置不了的。
array_map()函数可以实现你的需求:
<code>$arr = array('100', '101', '102', '103', '104', '105'); function make($v) { return array('id'=>$v); } $newArr=array_map('make', $arr); var_dump($newArr); //多谢楼下坛友建议 $newArr=array_map(function ($v){return array('id'=>$v);},$arr);</code>
补充下,上面的写法还可以用匿名函数使其更优雅。