从复数数组中获取值并输出为简单的关联数组

时间:2016-12-20 07:42:46

标签: php

请检查附加图像。这些图片包含$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);

输入:

complex picture

输出:

simple picture

3 个答案:

答案 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');