PHP单个数组到多维值

I know this is a simple question, and one that has certainly been asked but my googlefu is seriously failing me here and I'm drowning.

I have an array of values like so

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

I need it to be like this:

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

One of my searches gave me this:

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

    }

And that almost works except it assigns the key to the value so it becomes array(1, 2: array())

Which isn't what I want.

I need to loop over the values and assign those as keys, how do I do this in PHP?

In the end the array needs to have 3 dimensions, topCat which would contain all of the second categories, secondCat which would contain all of the list items.

try this :

<pre><?php

$oldArray = 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"));

var_dump($oldArray);

$newArray =  array();

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

    }
var_dump($newArray);

$t2 = array();
foreach($newArray as $index=>$back){
foreach($back as $index2=>$back2){
    $t2[] = array('topCat'=>$index, 'secondCat'=>$index2, 'listItem'=>$back2);
}}
var_dump($t2);

returns :

array(4) {
  [0]=>
  array(3) {
    ["topCat"]=>
    int(1)
    ["secondCat"]=>
    int(1)
    ["listItem"]=>
    array(2) {
      [0]=>
      string(11) "List Item 1"
      [1]=>
      string(11) "List Item 2"
    }
  }
  [1]=>
  array(3) {
    ["topCat"]=>
    int(1)
    ["secondCat"]=>
    int(2)
    ["listItem"]=>
    array(1) {
      [0]=>
      string(11) "List Item 1"
    }
  }
  [2]=>
  array(3) {
    ["topCat"]=>
    int(1)
    ["secondCat"]=>
    int(3)
    ["listItem"]=>
    array(1) {
      [0]=>
      string(11) "List Item 2"
    }
  }
  [3]=>
  array(3) {
    ["topCat"]=>
    int(2)
    ["secondCat"]=>
    int(1)
    ["listItem"]=>
    array(1) {
      [0]=>
      string(11) "List Item 1"
    }
  }
}