我试图手动排序一个PHP数组,而不使用ksort。
现在我的代码就是这样看的:
function my_ksort(&$arg){
foreach($arg as $key1 => $value1){
foreach($arg as $key2 => $value2){
if($key1 > $key2){
$aux = $value2;
$arg[$key2] = $value1;
$arg[$key1] = $aux;
}
}
}
}它不排序,我不知道如何使它排序。
发布于 2014-03-10 15:05:38
你可以试试这个:
function my_ksort(&$arg)
{
$keys=array_keys($arg);
sort($keys);
foreach($keys as $key)
{
$val=$arg[$key];
unset($arg[$key]);
$arg[$key]=$val;
}
}我分别对密钥进行排序,然后逐个删除元素,并按升序将它们追加到末尾。
我使用的是另一个排序函数(sort()),但是如果您想从仿真中消除所有可用的排序函数,那么sort()要容易得多。事实上,@crypticous算法就是这样做的!
发布于 2016-12-27 21:31:49
我正在检查一些与这篇文章有关的问题,我想给出我的见解!下面是我在实现php的分类时应该做的事情:
$array_res = array();
$array = array(50,25,98,45);
$i=0;
$temp = $array[0];
$key = array_search($temp, $array);
while ($i<count($array)-1){
$temp = $array[0];
for($n=0;$n<count($array) ;$n++)
{
if($array[$n]< $temp && $array[$n] != -1 )
{
$temp = $array[$n];
}
else{continue;}
}
//get the index for later deletion
$key = array_search($temp, $array);
array_push($array_res, $temp);
/// flag on those which were ordered
$array[$key] =-1;
$i++;
}
// lastly append the highest number
for($n=0;$n<count($array) ;$n++)
{
if ($array[$n] != -1)
array_push($array_res, $array[$n]);
}
// display the results
print_r($array_res);此代码将显示:数组( => 25 1 => 45 2 => 50 3 => 98 )
发布于 2018-10-27 06:47:47
又短又甜
function custom_ksort($arg)
{
$keys = array_keys($arg);
sort($keys);
foreach($keys as $newV)
{
$newArr[$newV] = $arg[$newV];
}
return $newArr;
}https://stackoverflow.com/questions/22302504
复制相似问题