@Alcospb

Откуда «Illegal string offset ***» при присвоение значения массиву?

Вообще не понимаю что происходит.

В скрипте $fieldTitle задается через switch. В данном случае == changedate
А $param['id'] через foreach. В данном случае == 2

$flat = array();
$flat[$param['id'][$fieldTitle] = $param['property_value']];
$flat[$param['id']['images'][] = $param['property_value']];


На первую строчку жалоба:
Warning: Illegal string offset 'changedate'
Вторая:
Notice: Undefined offset: 2

В чем косяк?
Спасибо.
  • Вопрос задан
  • 306 просмотров
Решения вопроса 1
DevMan
@DevMan
у вас лажа со скобками
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@cloud_zurbag
То что - вижу.
1) Квадратная скобка в конце лишняя, она должна быть справа
2) Сделал бы так
$flat = [];
$titleParam = $param['id'][$fieldTitle];
$imagesParam = $param['id']['images'];

$flat[titleParam] = $param['property_value'];
if (!isset($flat[$imagesParam])) {
    $flat[$imagesParam] = [];
}
$flat[$imagesParam][] = $param['property_value'];
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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