以下の配列を「終了」でソートしようとすると、簡単な方法がありますか?単純なPHP配列サブ配列キーによる並べ替え
$feature_event = array(
array(
"title" => "Classic",
"date" => "October 28 - 30 2016",
"end" => strtotime("October 30, 2016")
),
array(
"title" => "Ski Weekend",
"date" => "February 5-8, 2017",
"end" => strtotime("February 8, 2017")
),
array(
"title" => "NBA Weekend",
"date" => "February 17-19, 2017",
"end" => strtotime("February 19, 2017")
),
array(
"title" => "Fiesta",
"date" => "May 26-28, 2017",
"end" => strtotime("May 28, 2017")
)
結果をforeachループ経由で出力していますが、結果を3つに制限します。
<?php foreach(array_slice($feature_event, 0, 3) as $event): ?>
...
<?php endforeach; ?>
中小説明: 私はイベントに関連付けられている画像を表示しようとしています。各イベントには特定の終了日があります。終了日が過ぎると、ループの次のイメージを表示しますが、配列を終了日でソートします。私はusort関数がそのトリックをするだろうと理解していますが、私はコーディングの進歩ではありません。 "終わり"で並べ替えを行う簡単な方法はありますか、私はusortを行う必要があります。もし私が必要なら、私はまだforloopが必要でしょうか? Plzは私のばかな質問を許します。
UPDATE
この配列のマルチソートソリューション
array_multisort(array_column($feature_event, 'end'), $feature_event);
は、私はそれが必要だが、私は出力電流の日付オフに基づいてデータをしたいと思います...私は「できる方法をソートtは私のforloop内
が、私はこの条件を持っている...正しく動作する条件を作成するように見える:<?php
date_default_timezone_set("America/Chicago");
$now = strtotime("now");
?>
<?php if($now <= $event["end"]) :?>
... code ...
<?php endif;?>
しかし、それは2つのイベントを出力しています....私が間違っていることに関するアイデア。これは上のforeachloopの内側にある場合。
end
これはDBのですか?なぜそこから制限とソートをしないのですか? 'array_slice'と' usort'はもうありません – Ghost
これは小さなウェブサイトの静的データです。それは、ソートを使用しないサブアレイのキーに基づいてPHPでソートして制限する方法ですか?私が言ったように、私は単純な解決策を好むだろうが、より良い選択肢があれば、もう少し進歩すれば、それに反対するつもりはない。 –
編集された答え、 'strtotime()'部分を誤って読みました。 – AbraCadaver