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
*/
?>