我有一个这样的数组:
$arrayIn = [
[ 0 => "3",
1 => "12345"
],
[ 0 => "2",
1 => "123"
]
];
并希望获得这样的数组:
$arrayOut = [
12345 => "3",
123 => "2"
];
我尝试使用array_values
和array_combine
,但无法获得此结果。我怎么能这样做?
答案 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);
结果
数组(大小= 2)
12345 =>字符串' 3' (长度= 1)
123 =>字符串' 2' (长度= 1)