我从查询中获得了这个数组。
Array
(
[0] => Array
(
[user_id] => 5
[first_name] => Diyaa
[profile_pic] => profile/user5.png
)
[1] => Array
(
[user_id] => 8
[first_name] => Raj
[profile_pic] => profile/user8.jpg
)
[2] => Array
(
[user_id] => 10
[first_name] => Vanathi
[profile_pic] => profile/user10.jpg
)
)
我需要将数组索引设置为数组值(user_id
),如下所示:
Array
(
[5] => Array
(
[user_id] => 5
[first_name] => Diyaa
[profile_pic] => profile/user5.png
)
[8] => Array
(
[user_id] => 8
[first_name] => Raj
[profile_pic] => profile/user8.jpg
)
[10] => Array
(
[user_id] => 10
[first_name] => Vanathi
[profile_pic] => profile/user10.jpg
)
)
注意: user_id
是一个唯一值,不再重复。无需担心索引值。
如何转换并获取指定索引值的数组..?
答案 0 :(得分:4)
你可以尝试这段代码,在这里我做一些额外的工作。请参阅 AbraCadaver's clever answer $result = array_column($array, null, 'user_id');
。
array_combine(array_column($array, 'user_id'), $array);
答案 1 :(得分:4)
这正是array_column()
的用途:
$result = array_column($array, null, 'user_id');
array_column()返回输入的单个列中的值,由column_key标识。 可选地,可以提供index_key,以通过输入数组的index_key列中的值索引返回数组中的值。
<强> column_key 强>
要返回的值列。此值可以是要检索的列的整数键,也可以是关联数组或属性名称的字符串键名。 返回完整的数组或对象也可能为NULL(这与index_key一起用于重新索引数组)。
答案 2 :(得分:0)
这两种结构都是不必要的复杂和冗余。为什么不
$foo = array(5 =>
array('first_name' => 'Diyaa',
'profile_pic' => 'profile/user5.png'),
8 =>
array('first_name' => 'Raj',
'profile_pic' => 'profile/user8.png'),
...
);
然后通过$foo[$user_id]
访问它,这将为您提供一个2元素的关联数组,例如
array('first_name' => 'Raj',
'profile_pic' => 'profile/user8.png'),
更改profile_pic:
$foo[$user_id]['profile_pic'] = $new_pic;