我有一个数组。该数组有一个子数组。我想将子数组值取为主数组键。这是我的示例数组:
Array
(
[0] => Array
(
[index-id] => 12
[title] => Example Title
[description] => Example Description
)
[1] => Array
(
[index-id] => 32
[title] => Example Title
[description] => Example Description
)
)
我想将 index-id 带到主数组键我的数组必须是这样的
Array
(
[12] => Array
(
[index-id] => 12
[title] => Example Title
[description] => Example Description
)
[32] => Array
(
[index-id] => 32
[title] => Example Title
[description] => Example Description
)
)
我该怎么做?
答案 0 :(得分:2)
试试这个,
$temp = [];
foreach($arr as $k => $v){
$temp[$v['index-id']] = $v;
}
print_r($temp);
$temp
是结果数组,$arr
是您的数组。
尝试一下,它会起作用。
答案 1 :(得分:2)
使用array_column
和array_combine
函数的简短解决方案:
// $arr is your initial array
$result = array_combine(array_column($arr, 'index-id'), $arr);
答案 2 :(得分:0)
为此您只需要一个函数调用。由于 array_combine()
的特殊功能,不需要 array_column()
。
要保留所有子数组数据,请使用 null
作为第二个参数。
要分配新的第一级键,请使用单个列的名称作为第三个参数。
代码:(Demo)
array_column($array, null, 'index-id')
输出:
array (
12 =>
array (
'index-id' => 12,
'title' => 'Example Title',
'description' => 'Example Description',
),
32 =>
array (
'index-id' => 32,
'title' => 'Example Title',
'description' => 'Example Description',
),
)