php - 別の配列に基づいて配列をキーでソートしますか?

原文 php arrays sorting

PHPでこのようなことをすることは可能ですか?どのように関数を書きますか?例を示します。順序が最も重要です。

$customer['address'] = '123 fake st';
$customer['name'] = 'Tim';
$customer['dob'] = '12/08/1986';
$customer['dontSortMe'] = 'this value doesnt need to be sorted';


そして、私は何かをしたいと思います

$properOrderedArray = sortArrayByArray($customer, array('name', 'dob', 'address'));


最後にforeach()を使用し、正しい順序になっていないため(正しい順序にする必要がある文字列に値を追加しており、すべての配列キーが事前にわからないため/値)。

PHPの内部配列関数を調べましたが、アルファベット順または数値順でしかソートできないようです。
答え
array_mergeまたはarray_replaceを使用してください。 Array_mergeは、適切な順序で指定した配列から開始し、実際の配列のデータでキーを上書き/追加することで機能します。

$customer['address'] = '123 fake st';
$customer['name'] = 'Tim';
$customer['dob'] = '12/08/1986';
$customer['dontSortMe'] = 'this value doesnt need to be sorted';

$properOrderedArray = array_merge(array_flip(array('name', 'dob', 'address')), $customer);
//Or:
$properOrderedArray = array_replace(array_flip(array('name', 'dob', 'address')), $customer);

//$properOrderedArray -> array('name' => 'Tim', 'address' => '123 fake st', 'dob' => '12/08/1986', 'dontSortMe' => 'this value doesnt need to be sorted')


PS-私は以前の答えとして与えられたすべてのループがやり過ぎだと思うので、私はこの「古い」質問に答えています。
関連記事

php - PHPでCurlを使用したWebクロール

php - Yiiモジュールが機能しない

php - LaravelでZend Feed Readerを使用する方法

php - jquery Datatablesの同じ結果

php - 偽の配列値を偽の境界外インデックスと区別するにはどうすればよいですか?

javascript - 入力タイプを確認し、[保存]をクリックしている間は入力「パスワード」フィールドをスキップしてください

javascript - Angular Save vars to laravel session with ajax call do not work

php - ZF2 setPartialサブメニューにパラメーターを追加

php - カスタムインストールされたPHPをデフォルトとしてロードする

php - プロパティにアクセスするときに関数を呼び出す(PHPマジックメソッド)