如何将二维数组转换为指定两列为键值对的扁平关联数组
解决PHP数组转换问题
这里有两种简单的方法可以把你给出的嵌套数组转换成目标格式的单层键值对数组:
方法一:使用array_reduce函数
这个方法比较简洁,适合偏好函数式编程风格的场景:
$Old = [ '_1526906780329_329' => ['frlabel' => 'aa', 'enlabel' => 'AA'], '_1526906783640_640' => ['frlabel' => 'bb', 'enlabel' => 'BB'] ]; $New = array_reduce($Old, function($carry, $item) { $carry[$item['enlabel']] = $item['frlabel']; return $carry; }, []); print_r($New);
运行后会输出符合要求的结果:
Array ( [AA] => aa [BB] => bb )
方法二:使用foreach循环
如果觉得函数式写法不够直观,用foreach循环的逻辑会更直白:
$Old = [ '_1526906780329_329' => ['frlabel' => 'aa', 'enlabel' => 'AA'], '_1526906783640_640' => ['frlabel' => 'bb', 'enlabel' => 'BB'] ]; $New = []; foreach ($Old as $value) { $New[$value['enlabel']] = $value['frlabel']; } print_r($New);
这个方法的逻辑很简单:先初始化一个空数组,然后遍历原数组的每个元素,把每个元素里的enlabel作为新数组的键,frlabel作为对应的值存入新数组即可。
两种方法都能达到你想要的效果,选哪种完全看你个人的代码风格偏好~
内容的提问来源于stack exchange,提问作者Ketan Borada
相关产品推荐
相关产品推荐

