PHP Единый массив для многомерных значений

Я знаю, что это простой вопрос, и тот, который, конечно же, был задан, но мой googlefu серьезно терпит неудачу здесь, и я тонул.

У меня есть такой массив значений

array( array(topCat: "1", secondCat: "1", listItem: "List Item 1"), array(topCat: "1", secondCat: "1", listItem: "List Item 2"), array(topCat: "1", secondCat: "2", listItem: "List Item 1"), array(topCat: "1", secondCat: "3", listItem: "List Item 2"), array(topCat: "2", secondCat: "1", listItem: "List Item 1")) etc etc 

Мне нужно, чтобы это было так:

 array( array(topCat: 1, secondCat: 2, array("list item 1", "List Item 2"))). 

Один из моих поисков дал мне следующее:

  $newArray = array(); foreach ($oldArray as $row){ $newArray[$row['topCat']][$row['secondCat']][] = $row['listItem']; } 

И это почти работает, за исключением того, что он присваивает ключ значению, поэтому он становится массивом (1, 2: array ())

Это не то, что я хочу.

Мне нужно перебрать значения и назначить их как ключи, как это сделать в PHP?

В конце массив должен иметь 3 измерения, topCat, который будет содержать все второстепенные категории, secondCat, который будет содержать все элементы списка.