1, "name" => "Defg"), Array("id" => 2, "name" => "Abcd"), Array("id" => 3, "name" => "Bcde"), Array("id" => 4, "name" => "Cdef")); $tmp = Array(); echo "multi_arr_sort-1.php
\n"; /////////////////////////////////////// //// First the original sort shown //// echo "----- before sort -------
\n"; foreach($multiArray as &$ma) echo $ma["name"]."
\n"; // create a array of the sort element values foreach($multiArray as &$ma) $tmp[] = &$ma["name"]; foreach($tmp as $val) echo "val= $val
\n"; array_multisort($tmp, $multiArray); echo "-----
\n"; foreach($tmp as $val) echo "val= $val
\n"; echo "----- after #1 -------
\n"; foreach($multiArray as &$ma) echo $ma["name"]."
\n"; /* so tmp ends up looking like: Defg Abcd Bcde Cdef */ ///////////////////////////// //// ok and now sort it back //// unset($tmp); foreach($multiArray as &$ma) $tmp[] = &$ma["id"]; array_multisort($tmp, $multiArray); echo "----- sizes -------
\n"; echo "sizeof(tmp ) = ". sizeof($tmp) ." sizeof(multiArray) = ". sizeof($multiArray) ."
\n"; echo "----- after #2 -------
\n"; foreach($multiArray as &$ma) echo $ma["name"]."
\n"; /* Outputs Abcd Bcde Cdef Defg */ ?>