連想配列を整列させるメソッドを作る

配列の順番を整える用のメソッドを作っておくと、クエリパラメータ作るときとかに便利だよってお話。

// 整列させたいフォーマット
$formatList = [
    'name' => [],
    'birthday' => [],
    'address' => [],
    'email' => []
];

// 整列させたいデータ
$list= [
    'name' =>'太郎',
    'address' => '大阪府大阪市1234',
    'birthday' => '1990年1月1日',
    'email' => 'taro@aaaaa.com'
];

// 整列させて出力
$alighnedList = alignList($list, $formatList);
var_dump($alighnedList);
// 出力される内容(生年月日と住所が整列されている)
// $alighnedList= [
//     'name' =>'太郎',
//     'birthday' => '1990年1月1日',
//     'address' => '大阪府大阪市1234',
//     'email' => 'taro@aaaaa.com'
// ];

/**
 * 連想配列を整列させる
 *
 * @param  array $list データが入ったリスト
 * @param  array $formatList 整列させたいフォーマットのリスト
 * @return array $formatList 整列後のリスト
 */
public function alignList($list, $formatList)
{
    foreach ($formatList as $key => $val) {
        if (array_key_exists($key, $list)) {
            $formatList[$key] = $list[$key];
        } else {
            unset($formatList[$key]);
        }
    }
    return $formatList;
}