Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按PHP数组的内行排序_Php_Sorting - Fatal编程技术网

按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]);
});