首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用ksort对PHP数组进行排序

不使用ksort对PHP数组进行排序
EN

Stack Overflow用户
提问于 2014-03-10 14:11:00
回答 4查看 2.1K关注 0票数 1

我试图手动排序一个PHP数组,而不使用ksort。

现在我的代码就是这样看的:

代码语言:javascript
复制
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;
        }
      }
    }
}

它不排序,我不知道如何使它排序。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-10 15:05:38

你可以试试这个:

代码语言:javascript
复制
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算法就是这样做的!

票数 2
EN

Stack Overflow用户

发布于 2016-12-27 21:31:49

我正在检查一些与这篇文章有关的问题,我想给出我的见解!下面是我在实现php的分类时应该做的事情:

代码语言:javascript
复制
$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 )

票数 0
EN

Stack Overflow用户

发布于 2018-10-27 06:47:47

又短又甜

代码语言:javascript
复制
function custom_ksort($arg)
{
    $keys = array_keys($arg);

    sort($keys);

    foreach($keys as $newV)
    {
        $newArr[$newV] = $arg[$newV];
    }

    return $newArr;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22302504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档