按PHP数组的内行排序
我有一个具有以下结构的数组:按PHP数组的内行排序,php,sorting,Php,Sorting,我有一个具有以下结构的数组: for ($i = 0; $i < SOME_NUMBER; $i++) { $arr[$i][] = $info_1; $arr[$i][] = $info_2; $arr[$i][] = $info_3; $arr[$i][] = $DATE; $arr[$i][] = $info_4; } 预期产出将是: $arr[0][0] = 'Some Info 2.1'; $arr[0][1] = 'Some Info 2.2
for ($i = 0; $i < SOME_NUMBER; $i++) {
$arr[$i][] = $info_1;
$arr[$i][] = $info_2;
$arr[$i][] = $info_3;
$arr[$i][] = $DATE;
$arr[$i][] = $info_4;
}
预期产出将是:
$arr[0][0] = 'Some Info 2.1';
$arr[0][1] = 'Some Info 2.2';
$arr[0][2] = 'Some Info 2.3';
$arr[0][3] = '01-08-2011';
$arr[0][4] = 'Some Info 2.4';
$arr[1][0] = 'Some Info 1.1';
$arr[1][1] = 'Some Info 1.2';
$arr[1][2] = 'Some Info 1.3';
$arr[1][3] = '05-08-2010';
$arr[1][4] = 'Some Info 1.4';
使用数组排序不起作用。您应该使用php函数usort,该函数使用自定义函数对数组进行排序。这里是如何做到这一点一目了然 初始化阵列: 声明比较两个日期的比较函数: 请注意,上述比较函数假定日期始终位于第三个索引。如果希望更灵活,请自定义比较函数,以便在实际比较之前找到日期索引。祝你好运 更多信息:
您应该使用php函数usort,该函数使用自定义函数对数组进行排序。这里是如何做到这一点一目了然 初始化阵列: 声明比较两个日期的比较函数: 请注意,上述比较函数假定日期始终位于第三个索引。如果希望更灵活,请自定义比较函数,以便在实际比较之前找到日期索引。祝你好运 更多信息:
基于strotime比较,在每个数组项的第四个索引上排序:
uasort($arr, function($a, $b) {
return strtotime($a[3]) - strtotime($b[3]);
});
基于strotime比较,在每个数组项的第四个索引上排序:
uasort($arr, function($a, $b) {
return strtotime($a[3]) - strtotime($b[3]);
});
nvm我不知道我为什么要写数组键,我是说数组键。尽管如此,堆栈是为了帮助你编写代码,而不是为你编写代码;你还没有向我们展示你失败的尝试。”使用array_sort并不能告诉我们您做了什么,只是您以某种方式使用了一个函数。编辑你上面的问题。nvm我不知道我为什么写数组键,我的意思是数组键。尽管如此,堆栈是帮助你编写代码,而不是为你编写代码;你还没有向我们展示你失败的尝试。”使用array_sort并不能告诉我们您做了什么,只是您以某种方式使用了一个函数。编辑上面的问题。太棒了!但愿我能+5而不是+1那太棒了!但愿我能+5而不是+1
function cmp($a,$b){
$d1 = date_parse($a[3]);
$d2 = date_parse($b[3]);
return ($d1 < $d2) ? 1 : -1;
}
usort($arr,"cmp");
uasort($arr, function($a, $b) {
return strtotime($a[3]) - strtotime($b[3]);
});