Свойство массива объекта добавляет индекс при загрузке с массивом - PullRequest
0 голосов
/ 23 октября 2018

Объекты для меня несколько новы.

У меня есть свойство объекта, которое является массивом ... $obj->something[].У меня есть многомерный ассоциативный массив ... $schedule[$year][$month][$day][$event].

Когда я загружаю массив в свойство объекта, объект добавляет индекс.

$obj->something[] = $schedule;

Поэтому, когда я извлекаю данныеобъекта я получаю дополнительный индекс ...

[0][$year][$month][$day][$event]  

Я пытался array_replace, но это, похоже, ничего не делало.Как мне избежать получения дополнительного ведущего индекса?

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы можете попробовать array_merge.http://php.net/manual/en/function.array-merge.php

class Foo {
   private $something = [];

   function mergeEm(array $somethingElse) {
      $this->something = array_merge($this->something, $somethingElse); 
   }
}
0 голосов
/ 23 октября 2018

Присвойте массив непосредственно свойству без квадратных скобок.

$obj->something = $schedule;

, используя [] в конце левой части оператора присваивания, добавляет назначенное значение в массив (созданиемассив, если он еще не существует).

Если вы инициализировали свойство something пустым массивом, но он должен содержать ваш массив расписаний, вы хотите $schedule заменить пустой массив, но то, как вы это делаете, помещает $schedule в этот массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...