通过在创建子数组时分配键来创建数组数组

时间:2016-07-23 18:32:02

标签: php arrays

我可以这样写出来。

 $key = "sid";
 $values = array(1,2,3);
 $desired_array = array();

 foreach($values as $value){
     $desired_array[] = array($key => $value);
 }

 print_r($desired_array);

输出看起来像这样。

Array
(
    [0] => Array
        (
            [sid] => 1
        )

    [1] => Array
        (
            [sid] => 2
        )

    [2] => Array
        (
            [sid] => 3
        )     
)

我希望有一个奇特的PHP数组函数,我不知道这可能会为我创建,所以保持我的代码terser。

这是完整的解决方案,也许它不会太短,但是当我使用array_map时,我总是很高兴。

 $key = "sid";
 $values = array(1,2,3);
 $desired_array = array_map(function($value) use($key){
    return array($key=>$value);
 },$values);

2 个答案:

答案 0 :(得分:2)

使用array_map函数的替代解决方案:

$desired_array = array_map(function($v) use($key){ return [$key => $v]; }, $values);

答案 1 :(得分:2)

您可能正在寻找array_map

它的工作原理如下:

$array = [1, 2, 3];
$desired = array_map(function ($item) {return ['sid' => $item];}, $array);

我相信这个link也适用于演示。