PHP:其中一个值作为数组中的键

PHP: One of the values as key in array

我有一个这样的数组:

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

并希望获得这样的数组:

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

我用 array_valuesarray_combine 试过,但得不到这个结果。我该怎么做?

你可以用 array_column 来做这个

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

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

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

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

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

Demo

结果

array (size=2)
12345 => string '3' (length=1)
123 => string '2' (length=1)