【问题标题】:Php sort multi dimensional array by keyphp按键排序多维数组
【发布时间】:2011-09-02 07:32:23
【问题描述】:

php: alphabetically sort multi-dimensional array by its key?

我正在尝试做与我上面线程中的人完全相同的事情。但是我的 ksort($array) 似乎返回了一个数字 1。我做错了什么?

【问题讨论】:

  • 如果您希望人们帮助您,您需要提供一些示例代码:-)。你是如何使用 ksort 的?你的数组是什么样子的?
  • 您能告诉我们您尝试排序的数组吗?
  • php.net/manual/en/array.sorting.php 是一个很好的起点;或邮政编码。

标签: php arrays sorting key


【解决方案1】:

看看manual

bool ksort (数组&$array [, int $sort_flags = SORT_REGULAR])

你看,ksort 返回一个布尔值,并直接作用于给定的数组(注意参考符号&)。所以你可能正在做的是分配ksort的返回值,比如:

$array = ksort($array);

而不是,只是:

ksort($array);

【讨论】:

    【解决方案2】:

    函数进行就地排序,函数成功返回TRUE,失败返回FALSE。

    参考http://php.net/manual/en/function.ksort.php的例子

    <?php
    $fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
    ksort($fruits);
    foreach ($fruits as $key => $val) {
        echo "$key = $val\n";
    }
    ?>
    

    排序后的结果在变量 $fruits 中,而不是来自函数的返回值。

    如果你尝试 print_r($fruits),你会得到这样的结果

    Array
    (
        [a] => orange
        [b] => banana
        [c] => apple
        [d] => lemon
    )
    

    【讨论】:

      【解决方案3】:

      ksort() 不返回数组,它会操作您传递给它的数组。

      【讨论】:

        【解决方案4】:

        它实际上并没有返回 1,而是返回 true:

        http://php.net/manual/en/function.ksort.php

        返回值

        成功时返回 TRUE,失败时返回 FALSE。

        【讨论】:

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