Я пытаюсь сохранить массив в качестве значения ключа в другом массиве. Я не могу использовать такие функции, как array_push () или цикл for, потому что второй массив создается как параметр функции.
Я часами гуглил и не могу найти ответов! Я новичок в PHP, поэтому я понятия не имею, возможно ли это вообще.
Первый массив выглядит примерно так:
$choices[] = array('1'=>'Blue','2'=>'Red)
РЕДАКТИРОВАТЬ: это код, который я хотел добавить
$choices[] = array('1'=>'Blue','2'=>'Red');
Отсутствие '
и ;
были опечаткой. Массив создается гораздо более сложным способом. В моей попытке абстрагировать и упростить его, чтобы опубликовать здесь, я пропустил '
и ;
. Слава @ diéfani-favareto-piovezan за то, что заметил это.
Теперь я хочу вставить этот массив в качестве значения ключа в другой массив, который создается в другой части кода:
return randomFunction('random text', array(
'a' => 'apple',
'b' => 'banana',
'c' => ,
)
)
Я хочу, чтобы массив $choices
был значением ключа 'c'
.
Я пробовал это
return randomFunction('random text', array(
'a' => 'apple',
'b' => 'banana',
'c' => $choices,
),
)
Но это дает мне ошибку
РЕДАКТИРОВАТЬ: Я хотел сказать, что я попробовал это
return randomFunction('random text', array(
'a' => 'apple',
'b' => 'banana',
'c' => $choices,
)
)
Еще раз, при попытке абстрагироваться и упростить (фактический массив, созданный в RandomFunction, имеет около 250 строк), я добавил дополнительную запятую по ошибке. Престижность @brevis, @Nick и @tim за то, что они обнаружили это и привлекли мое внимание.
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ')' in /filename.php line 120
Ошибка упоминает еще одну строку кода, но я знаю, что это не причина, потому что если я удаляю
'c' => $choices,
Ошибки нет.
РЕДАКТИРОВАТЬ: Я хотел сказать «прежде чем я добавил строку 'c'
» (а не «если я удалю ее»), ошибок не было. Я также мог бы добавить, что создание $choices
предшествует массиву randomFunction
, так что это еще одна причина, по которой я знал, что там нет ошибок.
< EM> ВЫВОД : Как я уже упоминал, ошибка была лишней ),
после строки 'c'
, которую я не смог воспроизвести здесь, пытаясь упростить код. Я думаю, что когда я добавил строку 'c'
в мой фактический код, я должен был добавить дополнительный ),
по ошибке. Я смог найти это только потому, что @nick сказал, что код randomFunction
(тот, что после «Я попробовал это») должен работать. Это был ответ, который мне нужен, чтобы подтвердить, что ошибка не в этой строке. Благодаря комментарию @ dont-panic я более внимательно изучил полученное сообщение об ошибке и нашел лишний )'
. В конце концов, каждый помог мне. Так что спасибо всем!
Для всех, кто сталкивался с этим, рабочий код :
$choices[] = array('1'=>'Blue','2'=>'Red');
return randomFunction('random text', array(
'a' => 'apple',
'b' => 'banana',
'c' => $choices,
)
);
*
2 ответа
Хорошо, я нашел ошибку:
Я добавил дополнительный ),
в конце второго массива.
Рабочий код
$choices[] = array('1'=>'Blue','2'=>'Red');
return randomFunction('random text', array(
'a' => 'apple',
'b' => 'banana',
'c' => $choices,
)
);
В вашем коде отсутствует одна кавычка и точка с запятой после Красного.
Попробуйте это и посмотрите, работает ли это:
$choices[] = array('1'=>'Blue','2'=>'Red');
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.