値による多次元配列の並べ替え
多次元配列では、要素に基づいて要素を並べ替える必要が生じる場合があります。特定のキーの値。たとえば、次の配列について考えてみましょう。
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 ) )
「order」キーによる並べ替え
「order」キーによって配列を並べ替えるには、以下を使用できます。 usort() 関数。その使用法の包括的な内訳は次のとおりです:
PHP 5.2 以前:
最初に並べ替え関数を定義します:
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; }
PHP 5.3 以降:
匿名を使用する関数:
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
PHP 7:
宇宙船オペレーターの利用:
usort($myArray, function($a, $b) { return $a['order'] <=> $b['order']; });
PHP 7.4:
矢を使うfunction:
usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
多次元ソート:
多次元ソートの場合、最初の要素がゼロの場合に後続のソート要素を参照するようにソート関数を変更します。例:
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; });
キーの関連付け
キーの関連付けを維持する必要がある場合は、usort() の代わりに uasort() を使用します。
以上がPHP で多次元配列を値で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。