-3

音楽プロモーション会社のウェブサイトを作っています。アーティストごとに、次のようなイベント情報を含む個別の配列があります。

<?php

$donevents = array();
$donevents[101] = array(
    "date" => "March 18th 2013",
    "artist" => "Don Ross",
    "venue" => "The Half Moon, Putney",
    "link" => "http://www.halfmoon.co.uk",
    "label" => "donross",
    );
$donevents[102] = array(
    "date" => "March 19th 2013",
    "artist" => "Don Ross",
    "venue" => "The Moon Club, Cardiff",
    "link" => "http://www.themoonclub.net/",
    "label" => "donross",
    );
$donevents[103] = array(
    "date" => "March 21st 2013",
    "artist" => "Don Ross and Brooke Miller",
    "venue" => "Round Midnight, London",
    "link" => "http://www.roundmidnightbar.com",
    "label" => "donross",
    );
$donevents[104] = array(
    "date" => "March 21st 2013",
    "artist" => "Don Ross",
    "venue" => "Masterclass at the Swindon Academy of Music",
    "link" => "http://www.academyofmusic.ac.uk/locations/location.php?id=9",
    "label" => "donross",
    );
$donevents[105] = array(
    "date" => "March 23rd 2013",
    "artist" => "Don Ross",
    "venue" => "Berits & Brown, Airdrie",
    "link" => "http://www.intimate-gigs.com",
    "label" => "donross",
    );
$donevents[106] = array(
    "date" => "March 25th 2013",
    "artist" => "Don Ross",
    "venue" => "Masterclass at The Academy of Music, Gateshead",
    "link" => "http://www.guitarbar.co.uk",
    "label" => "donross",
    );


?>

インクルードを使用して、これらの個別の配列をすべて1つのイベントページに結合し、時系列に並べ替えたいと思います。「日付」連想配列でこれを行う方法はありますか?

したがって、最終的には次のようになります。2013年3月18日ドンロスザハーフムーン、パトニー

2013年3月20日BrookeMillerHobos、ブリジェンド

2013年3月29日ジミー・ワフルスティーンガレージ、スウォンジー

4

1 に答える 1

1

はい、次のようにuasort関数を使用する必要があります。

$sortedEvents = $donevents;
uasort($sortedEvents, function($eventA, $eventB){
    $eventDateA = DateTime::createFromFormat('F dS yyyy', $eventA['date']);
    $eventDateB = DateTime::createFromFormat('F dS yyyy', $eventB['date']);

    return $eventA->getTimestamp() < $eventB->getTimestamp() ? -1 : 1;
});
于 2013-02-13T17:35:19.077 に答える