非階層連想配列のカスタム キー ソート
PHP では、連想配列をアルファベット順または数値順に並べ替えることはできません。デフォルト。ただし、別の配列に基づいてカスタムの並べ替え順序を作成することは可能です。
カスタム キー ソートを実装する関数
カスタム キーを実行する関数を作成するには、-並べ替えるには、array_merge() 関数または array_replace() 関数を使用できます。これらの関数は両方とも 2 つの配列を入力として受け取ります。最初の配列は目的のキーの順序を指定し、2 番目の配列には並べ替える実際のデータが含まれます。
以下のコードは、この関数の実装方法を示しています。
function sortArrayByArray($inputArray, $sortKeysArray) { return array_merge(array_flip($sortKeysArray), $inputArray); }
使用例
次の例を考えてみましょうarray:
$customer['address'] = '123 fake st'; $customer['name'] = 'Tim'; $customer['dob'] = '12/08/1986'; $customer['dontSortMe'] = 'this value doesnt need to be sorted';
$sortKeysArray で指定されたキーの順序に基づいてこの配列を並べ替えるには、次のように sortArrayByArray() 関数を使用できます。
$sortKeysArray = ['name', 'dob', 'address']; $properOrderedArray = sortArrayByArray($customer, $sortKeysArray);
結果の $properOrderedArray
[ 'name' => 'Tim', 'dob' => '12/08/1986', 'address' => '123 fake st', 'dontSortMe' => 'this value doesnt need to be sorted' ]
キーは指定された順序に従ってソートされることに注意してください。 $sortKeysArray に保存され、値は保持されます。ソート不可能なキー (「dontSortMe」) が配列の末尾に追加されます。
このアプローチを使用すると、PHP で非階層連想配列のカスタム キー ソートを実現し、配列キーが確実に特定の方法で注文されました。
以上がPHP 連想配列のキーをカスタムソートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。