douliang9057 2012-05-07 09:36
浏览 43
已采纳

PHP - 如何通过单独的键对数组内的数组进行排序[重复]

Possible Duplicate:
PHP sort multidimensional array by value

I've looked though questions with similar titles and couldn't find the answer to my question. I also can't quite figure out how to implement asort or usort functions into my problem.

So I have an array:

array
{
   array
   {
      'name' => 'name1',
      'price' => '100',
      'grade' => '4.4'
   },
   array
   {
      'name' => 'name16',
      'price' => '12',
      'grade' => '1.2'
   },
   array
   {
      'name' => 'name3',
      'price' => '143',
      'grade' => '2.4'
   }
}

Is there any way to order this array by name or price or grade, so that the output would be for example: (ordered by name)

array
{
   array
   {
      'name' => 'name1',
      'price' => '100',
      'grade' => '4.4'
   },
   array
   {
      'name' => 'name3',
      'price' => '143',
      'grade' => '2.4'
   },
   array
   {
      'name' => 'name16',
      'price' => '12',
      'grade' => '1.2'
   }
}
  • 写回答

1条回答 默认 最新

  • dsmvqp3124 2012-05-07 09:50
    关注

    usort with PHP.net #4'th example using a closure to sort a multi-dimensional array:

    function build_sorter($key) {
        return function ($a, $b) use ($key) {
            return strnatcmp($a[$key], $b[$key]);
        };
    }
    
    usort($array, build_sorter('name'));
    usort($array, build_sorter('price'));
    usort($array, build_sorter('grade'));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像