Aiv*_*ras 1 php arrays associative-array
我正在尝试从foreach值创建关联的嵌套数组,但不确定如何以所需的格式获取它,因为现在关联数组被数字1包裹。
我知道这是因为不应该使用array()来包装值,但是不确定如何正确地进行包装。
$arr=array();
foreach ($all_users as $val) {
$arr[] = array( $val->data->user_nicename => array(
'username'=> $val->data->display_name,
'avatar_url' => get_avatar_url($val->ID)
)
);
}
print_f($arr);
Run Code Online (Sandbox Code Playgroud)
得到这样的数组结果:
Array
(
[0] => Array
(
[john_s] => Array
(
[username] => John Smith
[avatar_url] => https://secure.gravatar.com
)
)
[1] => Array
(
[sarah_s] => Array
(
[username] => Sarah Smith
[avatar_url] => https://secure.gravatar.com
)
)
)
Run Code Online (Sandbox Code Playgroud)
虽然所需的格式是:
Array
(
[john_s] => Array
(
[username] => John Smith
[avatar_url] => https://secure.gravatar.com
)
[sarah_s] => Array
(
[username] => Sarah Smith
[avatar_url] => https://secure.gravatar.com
)
)
Run Code Online (Sandbox Code Playgroud)
您嵌套的层次太深:
<?php
$arr=array();
foreach ($all_users as $val) {
// Use $val->data->user_nicename as the index to build an associative array of the other data
// This assumes that user_nicename is unique throughout the loop
// If you have multiple users with the same user_nicename then some data can get "lost"
$arr[$val->data->user_nicename] = array(
'username'=> $val->data->display_name,
'avatar_url' => get_avatar_url($val->ID)
);
}
Run Code Online (Sandbox Code Playgroud)