#php #multidimensional-array
#php #многомерный массив
Вопрос:
я создаю функцию, которая возвращает обычный массив :
function get_list_array () {
$list_object = get_list_objects();
foreach ( $list_object as $every_object) {
$list_array[] = array (
"wprm_$every_object->name" => array (
'name' => _x("$every_object->label", , 'test'),
'singular_name' => _x("$every_object->name", , 'test'),));
}
return $list_array ;
}
var_dump ($list_array);
array(2) {
[0]=> array(1) { ["object_1"]=> array(2) {
["name"]=> string(10)
"name_object1" ["singular_name"]=> string(15) "singular_name_object1" } }
[1]=> array(1) { ["object_2"]=> array(2) {
["name"]=> string(4)
"name_object2" ["singular_name"]=> string(10) "singular_name2" } } }
И я хочу получить на месте только ассоциативный массив, подобный этому:
array ("object_1" => array (["name"]=> string(10) "name_object1"
["singular_name"]=> string(15) "singular_name_object1" } ,
"object_2" => array(2) {
["name"]=> string(4)
"name_object2" ["singular_name"]=> string(10) "singular_name2" } } }
есть идеи, как я могу изменить свою функцию, чтобы получить второй вывод.
Комментарии:
1. Можете ли вы просто выполнить print_r() вместо var_dump()? Это слишком запутанно для меня, чтобы понять его структуру.
2. конечно, ниже приведен вывод print_r: Array ( [0] => Array ( [object_1] => Array ( [name] => name_object1 [singular_name] => singular_name_object1 ) ) [1] => Array ( [object_2] => Array ( [name] => name_object2 [singular_name] => singular_name2) ) ) и я ищу что-то вот так: Массив ( [object_1] => Массив ( [name] => name_object1 [singular_name] => singular_name_object1 ) ) , [object_2] => Массив ( [name] => name_object2 [singular_name] => singular_name2) ) )
Ответ №1:
Вы оборачиваете массив, который вы на самом деле хотите, в другой массив, делая это:
$list_array[] = array(
"wprm_$every_object->name" => array(
Вместо этого вы должны просто назначить новый массив $list_array
напрямую:
$list_array["wprm_$every_object->name"] = array(
Также, пожалуйста, подумайте о том, какой отступ вы делаете в своем коде, потому что вау. Ваша функция может выглядеть следующим образом:
function get_list_array () {
$list_object = get_list_objects();
foreach ($list_object as $every_object) {
$list_array["wprm_$every_object->name"] = array(
'name' => _x("$every_object->label", , 'test'),
'singular_name' => _x("$every_object->name", , 'test'),
);
}
return $list_array;
}