Формат массива добавление дополнительного слоя с помощью ‘=>’

#php

Вопрос:

Я изо всех сил пытаюсь найти способ преобразовать свой объект в правильный формат.

Я хочу заменить функцию, которую мы в настоящее время используем для создания подробного массива, как вы можете видеть ниже, все статично.

   private function departmentArray($content=[])
    {
            return [ static::$A_DEPT_ID => $content
                   , static::$O_DEPT_ID => $content
                   ];
    }
 

Пример результата, когда это выполняется, таков

 {"3":{"complete":0,"incomplete":0},"5":{"complete":0,"incomplete":0}}
 

Я преобразовал метод

        private function departmentArray($content=[])
    {
        $depts = d::getAllMainDepartment();
  
        $dept_array = [];
        foreach ($depts as $dept) {
            $dept_array[] = array($dept->id => $content);
        }
        
        return $dept_array;
    }
 

Полученный формат выглядит следующим образом

 [{"3":{"complete":0,"incomplete":0}},{"5":{"complete":0,"incomplete":0}}]
 

Как я могу поддерживать тот же формат в первой версии кода?

Ответ №1:

Вы не нажимаете на ассоциативный массив, вы используете новый ключ в качестве индекса.

 $dept_array[$dept->id] = $content;