【问题标题】:How to sort an array by keys in an ascending direction?如何按升序键对数组进行排序?
【发布时间】:2010-09-10 06:57:15
【问题描述】:

这是我从我的闪存文件中获得的输入

process.php?Q2=898&Aa=Grade1&Tim=0%3A0%3A12&Q1=908&Bb=lkj&Q4=jhj&Q3=08&Cc=North%20America&Q0=1

在 php 中我使用此代码 foreach ($_GET as $field => $label) { $dataarray[]=$_GET[$field];

echo  "$field :";
echo $_GET[$field];;
echo "<br>";

我把这个放出来

第二季度:898 AA :1 级 蒂姆:0:0:12 第一季度:908 BB :lkj 第四季度:jhj 第三季度:08 抄送:北美 Q0:1

现在我的问题是如何按字母顺序对其进行排序,使其看起来像这样 AA :1 级 BB :lkj 抄送:北美 Q0:1 第一季度:908

等等....在我可以将它插入数据库之前

【问题讨论】:

标签: php arrays sorting query-string


【解决方案1】:
ksort($_GET);

这应该是ksort $_GET 数组的键。 krsort 逆序。

【讨论】:

  • ksort() 确实可以完成这项工作,但不建议修改 POST/GET 变量,即使只是重新排序它们也是如此。一种解决方法是 $get = $_GET; 然后操作自定义数组。
【解决方案2】:

您正在寻找的是ksort。挖掘 PHP 手册! ;)

【讨论】:

    【解决方案3】:

    按键自然排序:

    function knatsort(&$karr){
        $kkeyarr = array_keys($karr);
        natsort($kkeyarr);
        $ksortedarr = array();
        foreach($kkeyarr as $kcurrkey){
            $ksortedarr[$kcurrkey] = $karr[$kcurrkey];
        }
        $karr = $ksortedarr;
        return true;
    }
    

    感谢 PHP 手册!

    foreach ($_GET as $key => $value) {
     echo $key.' - '.$value.'<br/>';
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2016-02-01
      • 2012-04-13
      相关资源
      最近更新 更多