Revision: 2000
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at December 11, 2006 12:43 by section31
Initial Code
// convert associative array to 2d array
function arr_convert_2d($arr) {
$tmp_arr = array();
foreach ($arr as $k => $v) {
$tmp_arr[] = array('index' => $k, 'value' => $v);
}
return $tmp_arr;
}
// convert 2d associative array to 1d array
function arr_convert_1d($arr) {
$tmp_arr = array();
foreach ($arr as $v) {
$tmp_arr[$v['index']] = $v['value'];
}
return $tmp_arr;
}
function assoc_quicksort($arr)
{
if (!count($arr)) return $arr;
$pivot = $arr[0];
$left = $right = array();
for($i = 1; $i < count($arr); $i++) {
if($arr[$i]['value'] <= $pivot['value']) {
$left[] = $arr[$i];
}
else {
$right[] = $arr[$i];
}
}
return array_merge(assoc_quicksort($left), array($pivot), assoc_quicksort($right));
}
$qsort_assoc_arr = arr_convert_1d(assoc_quicksort(arr_convert_2d($changed_arr)));
Initial URL
Initial Description
Initial Title
Associative Quick Sort
Initial Tags
Initial Language
PHP