2015-01-27 4 views
0

У меня есть вар массив, содержащий эти данные:Установить ключ/значение в массиве «не может использовать скалярное значение как массив»

$arr["values"] = [ 
    "key1" => "value1" 
    "key2" => "value2" 
    "key3" => "value3" 
    ] 

Теперь я пытаюсь добавить новые ключи $arr следующим образом:

$arr['newvalues'] = "anothervalue"; 
$arr['newvalues']['subvalues'] = "some_subvalue"; 

Но я получил эту ошибку:

Warning: Cannot use a scalar value as an array

И ошибка отмечена на этой линии:

$arr['newvalues']['subvalues'] = "some_subvalue"; 

Почему? Я не добавляю ключ/значения правильно? Что я делаю неправильно?

ответ

1

Вы должны установить $arr['newvalues'] как массив для добавления элементов к нему, в настоящее время вы устанавливаете его в виде строки.

$arr['newvalues'] = []; 
$arr['newvalues']['subvalues'] = "some_subvalue"; 
1

В этой строке

$arr['newvalues'] = "anothervalue"; 

Вы присваивающей $arr['newvalues'] скалярное значение. На следующей строке вы рассматриваете его как массив, но это не так, поскольку вы просто назначили ему скалярное значение.

Вы возможно означает, что $arr['newvalues'] будет массивом и добавить anothervalue к нему.

$arr['newvalues'][] = "anothervalue"; 
Смежные вопросы