お世話になります、二次元目の値でソートをする場合は
以下のサイトで説明されているような汎用関数で可能だと思いますが
$array = array( array( 'id' => 10, 'name' => 'hoge', ), array( 'id' => 3, 'name' => 'fuga', ), array( 'id' => 20, 'name' => 'foo', ), array( 'id' => 1, 'name' => 'bar', ), );
function sortArrayByKey( &$array, $sortKey, $sortType = SORT_ASC ) { $tmpArray = array(); foreach ( $array as $key => $row ) { $tmpArray[$key] = $row[$sortKey]; } array_multisort( $tmpArray, $sortType, $array ); unset( $tmpArray ); }
例えばX次元の配列から特定の値でソートしたい場合の
汎用関数を作りたいと思っているのですが
分かる方お教えいただけたら幸いです
例えば以下のような配列があるとして
$arr = array( '2018-01-25' => array( '3' => array( '111111' => array( '回収予定日' => '2018-01-25', '入金先' => '株式会社ダミー', '入金予定額' => '1111111', ), '222222' => array( '回収予定日' => '2018-01-05', '入金先' => '株式会社テスト', '入金予定額' => '2222222', ), '口座種類' => '共通', '口座計' => '3333333', ) ), '2018-02-25' => array( '3' => array( '444444' => array( '回収予定日' => '2018-01-25', '入金先' => '株式会社ダミー', '入金予定額' => '4444444', ), '333333' => array( '回収予定日' => '2018-01-05', '入金先' => '株式会社テスト', '入金予定額' => '3333333', ), '口座種類' => '共通', '口座計' => '7777777', ) ), );
条件としては
- 2以上のX次元先にソートキーがある
- ソート対象のレイヤーに非配列が存在したりする
期待する結果は
sortArrayByKey2をすることで、入金予定額でソートされ
非配列の口座種類などは非破壊でそのまま格納された状態になることです
sortArrayByKey2($arr,'入金予定額', $sortType = SORT_ASC ) $arr = array( '2018-01-25' => array( '3' => array( '222222' => array( '回収予定日' => '2018-01-05', '入金先' => '株式会社テスト', '入金予定額' => '2222222', ), '111111' => array( '回収予定日' => '2018-01-25', '入金先' => '株式会社ダミー', '入金予定額' => '1111111', ), '口座種類' => '共通', '口座計' => '3333333', ) ), '2018-02-25' => array( '3' => array( '444444' => array( '回収予定日' => '2018-01-25', '入金先' => '株式会社ダミー', '入金予定額' => '4444444', ), '333333' => array( '回収予定日' => '2018-01-05', '入金先' => '株式会社テスト', '入金予定額' => '3333333', ), '口座種類' => '共通', '口座計' => '7777777', ) ), );
よろしくお願い致します
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。