Задать вопрос
@betal

PHP: Как добавить в array элемент key => array()?

Задача должна быть очень простая, но программируя 5 лет на PHP решить ее не могу.
Есть такой псевдокод:
<?php
$brend = array();
//.../
$city   = 6;
$brend  = 11;
//.../
if (!isset($brend[$city])){
    $brend[$city] = array();
}
if (!isset($brend[$city][$brend])){
    $brend[$city][$brend] = array('eff'=>0,'count'=>0);
}
//.../              
$count  = $brend[$city][$brend]['count'];

Собственно ошибка в строке
>> $brend[$city] = array();
Array to string conversion
Но мне не нужно чтобы значением была строка, мне нужен многоуровневый массив.

PS.
Возможные решения:
1)
$brend[$city][$brend]['count']=0;
$brend[$city][$brend]['eff']=0;
Будут работать только если отключить предупреждения, но хочется разобраться, как разработчики предполагали решение данной задачи
2)
$brend = array(6 => array( 11 => array('eff'=>0,'count'=>0)));
Я не знаю заранее значения переменных $city и $brend и я не знаю как много их будет.
  • Вопрос задан
  • 2234 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Ну конечно он будет ругаться.
$city = 6; - это инт.
$brend = 11; - это тоже переменная типа инт.
К ней вы делаете якобы массив 11['6'] - конечно, это не верно, это не массив.

Надо делать так $arr[$brend][$city], тогда будет переменная $arr[11][6] - это массив.
Видеоурок по массивам, может будет полезен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
$brend = array();
//.../
$city = 6;
$brend = 11;


программируя 5 лет

?!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы