2016-02-01 3 views
0

У меня есть массив ключ/значение следующим образом:PHP Доступ ассоциативного массива Значение

Array (
    [a] => - Item 1.1 \n - Item 1.2 \n - Item 1.3 
    [b] => - Item 2.1 \n Item 2.2 \n - Item 2.3 \n - Item 2.4 
    [c] => - Item 3.1 \n - Item 3.2 
) 

У меня есть еще один массив, который я пытаюсь приравнять к первому. В принципе, я получаю запрос POST с json-кодированным массивом, затем я его декодирую, а затем пытаюсь установить ключ/значение одного массива равным ключу/значению другого.

Вот код:

$requests = $this->get("request"); 
$notes_json = $requests->get("notes"); 
$notes = json_decode($notes_json, true); 

$field_notes = array(
    "field_1" => $notes[a] 
); 

Но это не работает, я получаю (500) ошибка сервера. Затем я попытался установить echo $notes[g];, но я все еще получаю ошибку (500). Может ли кто-нибудь сказать мне, почему PHP не позволит мне просто получить доступ к определенному значению ключа массива?

===== EDIT =====

var_dump($notes) результаты:

array(7) { 
    ["a"]=> 
    string(159) "- data 1.1 
- data 1.2 
- data 1.3 
(note: extra data) 
" 
    ["b"]=> 
    string(0) "" 
    ["c"]=> 
    string(25) "- data 3.1 
" 
    ["d"]=> 
    string(24) "- data 4.1 
" 
    ["e"]=> 
    string(16) "- data 5.1 
" 
    ["f"]=> 
    string(34) "- data 6.1 
" 
    ["g"]=> 
    string(18) "(note: extra data) 
" 
} 
+2

показать нам результаты из: 'var_dump ($ notes);' –

+1

Первое, что вам нужно сделать _always_, когда вы получите ошибку в php-скрипте, выполненном внутри среды HTTP-сервера: _посмотрите файл журнала ошибок_. Вот где вы можете _read_, что проблема, а не _guess_. – arkascha

+0

Это, вероятно, не то, что вызывает вашу проблему, но вы должны процитировать свои ключи массива. –

ответ

0

Благодаря комментаторами на мой вопрос, решение было простым: в кавычки ключа:

неправильно: echo $notes[g];

право: echo $notes['g'];

+1

не должен вызывать такую ​​ошибку, ожидал бы только уведомления от php –

Смежные вопросы