【问题标题】:How to sort associative array如何对关联数组进行排序
【发布时间】:2011-06-27 11:42:12
【问题描述】:

我想对以下数组的键进行排序。我使用 ksort(),但我不知道如何使用它。有什么想法吗?

<?php
        $a = array(
                'kuy' => 'kuy',
                'apple' => 'apple',
                'thida' => 'thida',
                'vanna' => 'vanna',
                'ravy' => 'ravy'
              );

        $b = ksort($a);
        echo "<pre>";
        print_r($b);
        echo "</pre>";

【问题讨论】:

标签: php arrays ksort


【解决方案1】:

ksort() 对数组本身进行排序,不会创建排序副本

$a = array(
  'kuy'   => 'kuy',
  'apple' => 'apple',
  'thida' => 'thida',
  'vanna' => 'vanna',
  'ravy'  => 'ravy'
);

ksort($a);
echo "<pre>";
print_r($a);
echo "</pre>";

【讨论】:

    【解决方案2】:

    您可以在那里找到答案:http://php.net/manual/de/function.ksort.php

    像这样使用它:

    ksort($a);
    

    然后 $a 被排序。

    【讨论】:

      【解决方案3】:

      如果您不想保留 $a 的原始顺序,请使用:-

      ksort($a);
      print_r($a);
      

      如果你想保留 $a,但又想要一个排序的版本,请使用:-

      $b = $a;
      ksort($b);
      print_r($b);
      

      正如我在评论中所说,手册页非常清楚。 http://www.php.net/manual/en/function.ksort.php

      【讨论】:

        【解决方案4】:

        ksort 不返回数组。它只是对原始数组进行排序,并返回 bool “成功时返回 TRUE,失败时返回 FALSE。”

        所以你的排序数组是 $a,而不是 $b。 在这里看到它: http://codepad.org/zMTFTPGf

        【讨论】:

        • @KingCrunch,为不正确的语言道歉,我的意思是它不返回数组。
        • 独立于你的意思,它是错误的;)你应该修正你的答案
        【解决方案5】:

        ksort 返回布尔值并对原始数组进行排序,因此您应该打印 $a 而不是 $b,因为 $b 是 ksort 返回的布尔值,根据 ksort 的结果为真或假

        ksort($a);    
        print_r($a);
        

        【讨论】:

          【解决方案6】:

          ksort 返回一个布尔值 - 排序是否成功。它对数组进行就地排序 - 它更改数组变量而不是返回排序后的副本。

          试试:

          ksort($a);
          print_r($a);
          

          【讨论】:

            【解决方案7】:

            ksort通过引用获取它的参数并直接修改它,返回值只是表示成功或失败。

            【讨论】:

              【解决方案8】:

              ksort 返回一个关于它是否成功的布尔值,它不返回另一个排序数组。它改变了原来的数组。

              print_r($a);
              

              【讨论】:

                【解决方案9】:

                正如 Felix 所说,查看文档。也可以看例子here

                【讨论】:

                  猜你喜欢
                  • 2016-02-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-07-26
                  • 2011-05-01
                  • 2011-12-20
                  相关资源
                  最近更新 更多