请检查附加图像。这些图片包含$complex_arr
打印和$simple_arr
打印结果。我想将$complex_arr
转换为$simple_arr
输出。
怎么可能?实际上每个$complex_arr
内部值都将被转换为关联的简单数组,如$simple_arr
$arr1 = array("asso1"=>"a", "asso2"=>"1");
$arr2 = array("asso1"=>"b", "asso2"=>"2");
$arr3 = array("asso1"=>"c", "asso2"=>"3");
$complex_arr = array($arr1,$arr2,$arr3);
$simple_arr = array("a"=>"1", "b"=>"2", "c"=>"3");
// print_r($complex_arr);
print_r($simple_arr);
输入:
输出:
答案 0 :(得分:1)
你必须自己写...这是我的想法:
public function makeItSimpler($arr){
$newarr = array();
foreach($arr as $complex){
$newarr[$complex['asso1']]=$complex['asso2'];
}
return $newarr;
}
也许你可以做得更好......看看“阵列图”http://php.net/manual/de/function.array-map.php 祝你好运
答案 1 :(得分:1)
foreach ($complex_arr as $key => $value) {
$simple_arr[$value['asso1']]=$simple_arr[$value['asso2']];
}
答案 2 :(得分:1)
使用php5.5
(其中array_column
可用),它是:
$simple_arr = array_combine(
array_column($complex_arr, 'asso1'),
array_column($complex_arr, 'asso2')
);
甚至更简单(在我重读function manual之后):
$simple_arr = array_column($complex_arr, 'asso2', 'asso1');