ソートされた配列のキー名を維持するには、次の方法を使用できます。 ksort() と krsort() を使用してキーでソートし、キーの順序を維持します。 array_multisort() を使用して、複数の列 (キーを含む) に基づいて同時に並べ替えます。カスタム コンパレータ関数を定義して照合順序を制御します。
#PHP を使用してソートされた配列内のキー名を維持するにはどうすればよいですか?
PHP で配列を並べ替えた後、元のキー名を維持したい場合があります。その方法は次のとおりです。
ksort()
関数と krsort()
関数の使用
ksort ()
および krsort()
は配列をキーでソートします。これらの関数は、キー名をそれぞれ昇順と降順で維持します。
// 按键升序排序 $array = ['name' => 'John', 'age' => 30, 'city' => 'New York']; ksort($array); // 按键降序排序 $array = ['name' => 'John', 'age' => 30, 'city' => 'New York']; krsort($array);
Use array_multisort()
Function
array_multisort()
キーを含む複数の配列列を同時に並べ替えることができます:
// 按键升序排序,如果键相等则按值降序排序 $names = ['name1', 'name3', 'name5', 'name2', 'name4']; $ages = [20, 30, 50, 40, 60]; array_multisort($names, SORT_ASC, SORT_NUMERIC, $ages, SORT_DESC);
カスタム コンパレータの使用
独自のコンパレータ関数を定義して、キーを含む並べ替えルールを制御できます:
function compareKeys($a, $b) { return strcmp($a['key'], $b['key']); } $array = [{'key' => 'a'}, {'key' => 'c'}, {'key' => 'b'}]; usort($array, 'compareKeys');
実用的なケース: キーによるユーザーの並べ替え
// 获取用户数据 $users = [ ['id' => 1, 'name' => 'John Doe'], ['id' => 3, 'name' => 'Jane Smith'], ['id' => 2, 'name' => 'Bob Johnson'] ]; // 使用 ksort 按键升序排序用户 ksort($users); // 按升序的键输出用户列表 foreach ($users as $user) { echo $user['id'] . ': ' . $user['name'] . '<br>'; }
このコードは、元のキー名を保持したまま、ID によって昇順に並べ替えられたユーザー リストを出力します。
以上がPHPを使用してソートされた配列のキー名を維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。