首页 / PHP / PHP按索引排序2d数组(非关联)
PHP按索引排序2d数组(非关联)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP按索引排序2d数组(非关联),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1044字,纯文字阅读大概需要2分钟。
内容图文
![PHP按索引排序2d数组(非关联)](/upload/InfoBanner/zyjiaocheng/751/a070c2f395c043f88aca522e962bf4d6.jpg)
此代码无法正常运行,但它表明了我要做的事情:
function sort_2d_by_index($a,$i) {
function cmp($x, $y) {
// Nested function, can't find $i
// (global $i defeats the purpose of passing an arg)
if ($x[$i] == $y[$i]) { return 0; }
return ($x[$i] < $y[$i]) ? -1 : 1;
}
usort($a,"cmp");
return $a;
}
有一个更好的方法来做到这一点.我一直在检查ksort(),multisort()和各种各样的排序,直到我厌倦了尝试整理它.
情况是这样的:我有一个二维阵列……
array(
array(3,5,7),
array(2,6,8),
array(1,4,9)
);
…我希望按列索引排序.比如,列[1],会给出这个结果:
array(
array(1,4,9),
array(3,5,7),
array(2,6,8)
);
有人有链接(我确定之前已经问过),或者有人说“你需要foosort,肯定”.非常感谢.
解决方法:
在array_multisort的documentation中,提到它可以用于这种事情.
您无法避免创建仅包含一列的数组:
$sort_column = array();
foreach ($a as $row)
$sort_column []= $row[1]; // 1 = your example
array_multisort($sort_column, $a);
这会同步对两个数组进行排序,以便之后整个数组的排序顺序与$sort_column数组相同.
从PHP 5.3开始,你可以通过定义你的cmp函数来使用closure(将$i传递给函数):
$cmp = function($x, $y) use ($i) { ... };
内容总结
以上是互联网集市为您收集整理的PHP按索引排序2d数组(非关联)全部内容,希望文章能够帮你解决PHP按索引排序2d数组(非关联)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。