[解決済み] PHP 多次元配列を、日付を含む要素でソートする
2022-02-19 20:41:05
質問
次のような配列があります。
Array
(
[0] => Array
(
[id] => 2
[type] => comment
[text] => hey
[datetime] => 2010-05-15 11:29:45
)
[1] => Array
(
[id] => 3
[type] => status
[text] => oi
[datetime] => 2010-05-26 15:59:53
)
[2] => Array
(
[id] => 4
[type] => status
[text] => yeww
[datetime] => 2010-05-26 16:04:24
)
)
誰か、datetime要素に基づいてこれをソート/並べ替える方法を提案してくれませんか?
どのように解決するのですか?
使用方法
usort()
とカスタム比較関数を使用します。
function date_compare($a, $b)
{
$t1 = strtotime($a['datetime']);
$t2 = strtotime($b['datetime']);
return $t1 - $t2;
}
usort($array, 'date_compare');
EDIT : あなたのデータは、配列の配列で構成されています。これを区別するために、内側の配列(データ)をレコードと呼ぶことにしましょう。
usort
はこれらのレコードのうちの2つを与えられた比較関数に渡します。
date_compare()
を一度に表示します。
date_compare
を抽出し
"datetime"
フィールドをUNIXタイムスタンプ(整数)として取得し、その差分を返すので、結果は
0
が等しい場合は正の数、最初の日付が等しい場合は正の数 (
$a
)の方が大きい場合は負の値、第2引数(
$b
)の方が大きい。
usort()
は、この情報を使って配列を並べ替えます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】メンバ関数をnullで呼び出す?
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】Chrome net::ERR_INCOMPLETE_CHUNKED_ENCODING エラーが発生しました。
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み】PHPのクラスが見つからないが、インクルードされている
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
[解決済み] Uncaught SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】書き込みコンテキストでメソッドの戻り値を使用することができない
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?