[解決済み] 多次元配列の値によるソート方法
2022-03-17 11:04:07
質問
この配列を "order"キーの値でソートするにはどうしたらよいですか?
現在、値が連続であっても、常に連続であるとは限りません。
Array
(
[0] => Array
(
[hashtag] => a7e87329b5eab8578f4f1098a152d6f4
[title] => Flower
[order] => 3
)
[1] => Array
(
[hashtag] => b24ce0cd392a5b0b8dedc66c25213594
[title] => Free
[order] => 2
)
[2] => Array
(
[hashtag] => e7d31fc0602fb2ede144d18cdffd816b
[title] => Ready
[order] => 1
)
)
解決方法は?
を試してみてください。 ソート . もしまだ PHP 5.2 以前であれば、最初にソート関数を定義する必要があります。
function sortByOrder($a, $b) {
return $a['order'] - $b['order'];
}
usort($myArray, 'sortByOrder');
PHP 5.3 以降では、匿名関数を使用することができます。
usort($myArray, function($a, $b) {
return $a['order'] - $b['order'];
});
そして最後に、PHP 7 では スペースシップ演算子 :
usort($myArray, function($a, $b) {
return $a['order'] <=> $b['order'];
});
これを多次元ソートに拡張するには、最初のソート要素がゼロの場合、2番目と3番目のソート要素を参照します。また、これはサブ要素のソートにも使用できます。
usort($myArray, function($a, $b) {
$retval = $a['order'] <=> $b['order'];
if ($retval == 0) {
$retval = $a['suborder'] <=> $b['suborder'];
if ($retval == 0) {
$retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
}
}
return $retval;
});
キーの関連付けを保持する必要がある場合は
uasort()
- 見る
配列ソート関数の比較
をマニュアルに掲載しています。
関連
-
[解決済み】++と*+の意味は何ですか?
-
[解決済み】既に開始されているPHPセッション【重複あり
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 山積みされた靴下を効率よく組み合わせるには?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] 整数の配列を正しくソートする方法
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】PHPの予期しないT_VARIABLEとは何ですか?
-
[解決済み] * vchiqインスタンスを開くのに失敗しました。
-
[解決済み] [Solved] Fatal error: メンバ関数 query() の null への呼び出し。
-
[解決済み】PDOException SQLSTATE[HY000] [2002] そのようなファイルまたはディレクトリがありません。
-
[解決済み】Netbeans 7.4 for PHPで「スーパーグローバルな$_POST配列に直接アクセスしないでください」という警告が発生する。
-
[解決済み】Fatal error: mysqli_result 型のオブジェクトは使用できません [終了] 。
-
[解決済み】MySQLのカラム数が1行目の値数と一致しない【非公開