PHP使用数组映射重新编译数组

时间:2016-07-08 10:05:29

标签: php arrays array-map

我需要用一个函数重新编译这个数组。

From(我的实际数组):

array:2 [▼
  0 => array:2 [▼
    "way" => 0
    "period" => "MONTH"
  ]
  1 => array:2 [▼
    "way" => 1
    "period" => "3MONTHS"
  ]
]

To(我想要这个数组):

array:2 [▼
  0 => array:1 [▼
    "MONTH" => 0
  ]
  1 => array:1 [▼
    "3MONTHS" => 1
  ]
]

我可以使用array_map()函数吗?

2 个答案:

答案 0 :(得分:3)

您可以简单地使用foreach来代替

foreach($your_arr as &$v){
    $v = [$v["period"] => $v["way"]];
}
print_r($your_arr);

或使用array_map

$your_arr = array_map(function($v){ return [$v["period"] => $v["way"]]; },$your_arr);
print_r($your_arr);

答案 1 :(得分:2)

使用 array_column() 作为

$data = array_column($array, 'way','period');

period转换为关键字,将way转换为其值