首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >排序nth级子数组

排序nth级子数组
EN

Stack Overflow用户
提问于 2016-11-10 18:09:57
回答 4查看 111关注 0票数 1

让我们假设我有一个嵌套的PHP数组$aaa,其中条目$aaa[$bbb][$ccc]如下

代码语言:javascript
运行
复制
array(0 => array('x' => 3, 'y' => 2), 1 => array('x' => 2, 'y' => 1), 2 => array('x' => 4, 'y' => 1))

假设我只想按x值对这个数组进行排序,以便得到数组

代码语言:javascript
运行
复制
array(0 => array('x' => 2, 'y' => 1), 1 => array('x' => 3, 'y' => 2), 2 => array('x' => 4, 'y' => 1))

而不是修改所有其他子数组。我该怎么做呢?我无法用usort和自定义函数来完成这个任务。

EN

Stack Overflow用户

发布于 2016-11-10 18:22:13

您可以像下面这样与usort一起使用:

代码语言:javascript
运行
复制
<?php  
function compare_func($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

$name = array(0 => array('x' => 3, 'y' => 2), 1 => array('x' => 2, 'y' => 1), 2 => array('x' => 4, 'y' => 1));
usort($name, compare_func('x'));
print_r($name);
?>

输出:Array ( [0] => Array ( [x] => 2 [y] => 1 ) [1] => Array ( [x] => 3 [y] => 2 ) [2] => Array ( [x] => 4 [y] => 1 ) )

有关更多细节,http://php.net/manual/en/function.usort.php

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40534319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档