簡體   English   中英

PHP使用array_multisort按日期對多個數組進行排序

[英]PHP using array_multisort to sort multiple arrays by date

我大約有五個數組,其中一個包含日期。 我想在包含日期的數組之后對它們進行排序。 我知道如何使用“ 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');

如果我的理解正確,您有(要說3個)要排序的數組,其中一個包含日期,並且要按日期排序,並且由於multisort不支持回調或按日期排序,因此您可以不確定該怎么辦?

例如

$arr1 = array('2019-05-15', '2019-05-17', '2019-05-13')
$arr2 = array('Wed','Fri','Mon');
$arr3 = array('Pork','Steak','Chicken');

如果是我,我可能只是將日期解析到一個新數組中的unix_time中,並使用該新數組作為我的排序“鍵”來對其余部分進行排序,因為多重排序可以計算數字。

(未經測試,僅根據我的理論)

$key = array_map('strtotime', $arr1);
array_multisort($key, SORT_ASC, SORT_NUMERIC, $arr1, $arr2, $arr3);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM