PHP:作为数组

时间:2018-04-05 19:50:35

标签: php arrays key key-value

我有一个这样的数组:

$arrayIn = [
     [ 0 => "3",
       1 => "12345"
     ],
     [ 0 => "2",
       1 => "123"
     ]
];

并希望获得这样的数组:

$arrayOut = [
     12345 => "3",
     123 => "2"   
];

我尝试使用array_valuesarray_combine,但无法获得此结果。我怎么能这样做?

2 个答案:

答案 0 :(得分:5)

您可以将array_column用于此

$arrayOut = array_column($arrayIn, 0, 1);

第二个参数指定要选择的列,第三个参数指定要用作键的列。

请记住,如果第1列中有重复值,则会在结果中覆盖它们,因为根据定义,数组键必须是唯一的,但该警告适用于此问题的任何解决方案。

答案 1 :(得分:1)

您可以循环遍历原始数组并构建一个新数组,其中第二个值为键,第一个值为值:

$arrayOut = [];
foreach ($arrayIn as $arr) {
    $arrayOut[$arr[1]] = $arr[0];
}
var_dump($arrayOut);

Demo

结果

  

数组(大小= 2)
   12345 =>字符串' 3' (长度= 1)
   123 =>字符串' 2' (长度= 1)