0) { $lowest_id = 0; $index=0; foreach ($array as $item) { if ($order == 'desc') { if ($item[$id]<$array[$lowest_id][$id]) { $lowest_id = $index; } } else { if ($item[$id]>$array[$lowest_id][$id]) { $lowest_id = $index; } } $index++; } $temp_array[] = $array[$lowest_id]; $array = array_merge(array_slice($array, 0, $lowest_id), array_slice($array, $lowest_id+1)); } return $temp_array; } function array_walk_recursive_limited(&$array, $function, $apply_to_keys_also = false) { static $recursive_counter = 0; if (++$recursive_counter > 1000) { die('possible deep recursion attack'); } foreach ($array as $key => $value) { if (is_array($value)) { array_walk_recursive_limited($array[$key], $function, $apply_to_keys_also); } else { $array[$key] = $function($value); } if ($apply_to_keys_also && is_string($key)) { $new_key = $function($key); if ($new_key != $key) { $array[$new_key] = $array[$key]; unset($array[$key]); } } } $recursive_counter--; }