php二维数组排序
有时候我们需要对二维数组按某一个键对应的值去排序,如下面的数组
Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )
    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )
    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)
这是一个二维的数组,根据order键位的值顺序,当前的数组的排列可能不是我们想要的,我们可以用以下的方法对这个数组排序:
function aasort (&$array, $key) {
    $sorter=array();
    $ret=array();
    reset($array);
    foreach ($array as $ii => $va) {
        $sorter[$ii]=$va[$key];
    }
    asort($sorter);
    foreach ($sorter as $ii => $va) {
        $ret[$ii]=$array[$ii];
    }
    $array=$ret;
}
aasort($your_array,"order");
最后给出完整的测试代码:
<?php
function aasort (&$array, $key) {
    $sorter=array();
    $ret=array();
    reset($array);
    foreach ($array as $ii => $va) {
        $sorter[$ii]=$va[$key];
    }
    asort($sorter);
    foreach ($sorter as $ii => $va) {
       // $ret[$ii]=$array[$ii]; //保持索引
        $ret[]=$array[$ii]; //重置索引
    }
    $array=$ret;
}
 $myarr= array(
    0 => array (
            'hashtag' =>'a7e87329b5eab8578f4f1098a152d6f4',
            'title' => 'Flower',
            'order' => 3,
        ),
    1 => array
        (
            'hashtag' => 'b24ce0cd392a5b0b8dedc66c25213594',
            'title' => 'Free',
            'order' => 2,
        ),
    2 => array
        (
            'hashtag' => 'e7d31fc0602fb2ede144d18cdffd816b',
            'title' => 'Ready',
            'order' => 1,
        )
);
 print_r($myarr);
   
  aasort($myarr,"order");
  echo "<br /><br /><br />";
  
  print_r($myarr);
近期文章
- 织梦5.7{dede:php}标签不起作用的解决办法
 - php版本non-thread-safe和thread-safe的区别
 - 什么是fatal flex scanner internal error--end of buffer missed
 - php文件命名建议用小写
 - php cookie字典
 - seft和static在php中有什么不同
 - 用php快速获取图片大小
 - 用php的json_decode()检测json数据是否合法
 - php三个等号
 - unset和=null有什么不同
 - php如何捕获一个警告信息
 - 如何获得php数组中最后一个元素的键名?
 - 在PHP中,你如何改变数组中某一元素的键名?
 - php多维数组转xml
 - php如何转化数组为SimpleXML对象
 - php如何把数组定义为常量
 - php根据数组中的值删除数组中的元素
 - 计算两个日期相差多少天
 - 如何捕获var_dump的输出结果保存到一个字符串中?
 - 用php获取完整的URL