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