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_values
和 array_combine
试过,但得不到这个结果。我该怎么做?
你可以用 array_column
来做这个
$arrayOut = array_column($arrayIn, 0, 1);
第二个参数指定要select的列,第三个参数指定要用作键的列。
请记住,如果您在第 1 列中有重复值,它们将在结果中被覆盖,因为根据定义数组键必须是唯一的,但该警告适用于此问题的任何解决方案。
您可以循环遍历原始数组并构建一个新数组,第二个值作为键,第一个值作为值:
$arrayOut = [];
foreach ($arrayIn as $arr) {
$arrayOut[$arr[1]] = $arr[0];
}
var_dump($arrayOut);
结果
array (size=2)
12345 => string '3' (length=1)
123 => string '2' (length=1)
我有一个这样的数组:
$arrayIn = [
[ 0 => "3",
1 => "12345"
],
[ 0 => "2",
1 => "123"
]
];
并希望获得这样的数组:
$arrayOut = [
12345 => "3",
123 => "2"
];
我用 array_values
和 array_combine
试过,但得不到这个结果。我该怎么做?
你可以用 array_column
来做这个
$arrayOut = array_column($arrayIn, 0, 1);
第二个参数指定要select的列,第三个参数指定要用作键的列。
请记住,如果您在第 1 列中有重复值,它们将在结果中被覆盖,因为根据定义数组键必须是唯一的,但该警告适用于此问题的任何解决方案。
您可以循环遍历原始数组并构建一个新数组,第二个值作为键,第一个值作为值:
$arrayOut = [];
foreach ($arrayIn as $arr) {
$arrayOut[$arr[1]] = $arr[0];
}
var_dump($arrayOut);
结果
array (size=2)
12345 => string '3' (length=1)
123 => string '2' (length=1)