我大约有五个数组,其中一个包含日期。我想在包含日期的数组之后对它们进行排序。我知道如何使用“ usort”对日期数组进行排序。我也知道如何使用“ array_multisort”对多个数组进行排序,但是不知道如何将它们组合在一起。有办法吗?希望您能提供帮助,并告诉我是否需要更多信息来解决我的问题:)
编辑:
这是我的数组:
$fid=array(1, 2, 3, 4, 5, 6, 7, 8);
$ftitle=array("Title1", "Title2", "Title3", "Title4", "Title1", "Title2", "Title3", "Title4");
$fbeskrivelse=array("Beskrivelse1", "Beskrivelse2", "Beskrivelse3", "Beskrivelse4", "Beskrivelse1", "Beskrivelse2", "Beskrivelse3", "Beskrivelse4");
$fstøtter=array(2, 15, 7, 10, 3, 4, 5, 6);
$fstartdato=array('11-01-2012', '01-01-2014', '01-01-2015', '09-02-2013', '01-01-2013', '11-01-2017', '01-01-2018', '01-01-2019');
这是我想要的结果(排序后):
$fid=array(1, 3, 4, 2, 5, 6, 7, 8);
$ftitle=array("Title1", "Title3", "Title4", "Title2", "Title1", "Title2", "Title3", "Title4");
$fbeskrivelse=array("Beskrivelse1", "Beskrivelse3", "Beskrivelse4", "Beskrivelse2", "Beskrivelse1", "Beskrivelse2", "Beskrivelse3", "Beskrivelse4");
$fstøtter=array(2, 7, 10, 15, 3, 4, 5, 6);
$fstartdato=array('11-01-2012', '01-01-2013', '09-02-2013', '01-01-2014', '01-01-2015', '11-01-2017', '01-01-2018', '01-01-2019');
答案 0 :(得分:2)
如果我正确理解,您有(要说3个)要排序的数组,其中一个包含日期,并且要按日期排序,因为多重排序不支持回调或排序日期,您不确定该怎么办?
例如
$arr1 = array('2019-05-15', '2019-05-17', '2019-05-13')
$arr2 = array('Wed','Fri','Mon');
$arr3 = array('Pork','Steak','Chicken');
如果是我,我可能只是将日期解析到一个新数组中的unix_time中,并使用该新数组作为我的排序“键”来对其余的排序,因为multisort可以做数字。
(未经测试,仅是我的理论)
$key = array_map('strtotime', $arr1);
array_multisort($key, SORT_ASC, SORT_NUMERIC, $arr1, $arr2, $arr3);