また、ひとつになった多次元配列にソートを掛けたいのです。
(A)カテゴリ多次元配列
cat_id,cat_nm,cat_sort
1,ウェイクボード,B
2,スノーボード,A
3,サーフボード,C
4,ボードセイリング,D
5,カイトボード,E
(B)サブカテゴリ多次元配列
sub_id,sub_cat,sub_sort
1,スクール,a
2,トーイング,c
3,レンタル,d
4,販売,e
5,ツアー,b
(C)
cat_id,sub_id,flg
1,1,0
1,2,1
1,3,0
1,4,1
2,1,0
2,3,0
2,5,0
3,1,0
3,3,0
4,1,1
(C)の多次元配列に(A)と(B)をくっつけたいのです。
500文字に収まりませんでしたので、コメント欄にくっつけた多次元配列と、ソート後のイメージを追加しておきます。
// (A)の多次元配列が、$Aだとします。 // 例えば、echo $Cat['1']['cat_nm']; で 「ウェイクボード」 と表示されるように // 配列の添え字をcat_idとする新しい、多次元配列$Catをつくる foreach( $A as $row ){ $cat_id = $row['cat_id']; $Cat[ $cat_id ] = $row; } // (B)の多次元配列が、$Bだとします。 // 例えば、echo $Sub['1']['sub_cat']; で 「スクール」 と表示されるように // 配列の添え字をsub_idとする新しい、多次元配列$Subをつくる foreach( $B as $row ){ $sub_id = $row['sub_id']; $Sub[ $sub_id ] = $row; } // (C)の多次元配列が、$Cだとします。 // 合体した新たな多次元配列$Newを作成する。 // その際、添え字を「Ba」というように、cat_sortとsub_sortを合成したものにする foreach( $C as $row ){ $cat_id = $row['cat_id']; $sub_id = $row['sub_id']; $key = $Cat[ $cat_id ]['cat_sort'].$Sub[ $sub_id ]['sub_sort']; $New[ $key ] = array( 'cat_id' => $cat_id , 'cat_nm' => $Cat[ $cat_id ]['cat_nm' ] , 'cat_sort' => $Cat[ $cat_id ]['cat_sort'] , 'sub_id' => $sub_id , 'sub_nm' => $Sub[ $sub_id ]['sub_cat' ] , 'sub_sort' => $Sub[ $sub_id ]['sub_sort'] , 'flg' => $row[ 'flg' ] , ); } // $Newを添え字でソート(つまり、第一をcat_sortで、第二をsub_sortでソートしたことになる) ksort($New);
以上、いかがでしょうか?
kurukuru-nekoさま、コメントでここまでのご回答ありがとうございます。
nandedarouさま、1度ならず2度までもお手数をおかけしました。
また、私の説明不足とい誤字でご迷惑をおかけしたようです。
> もしかして、sub_nmとしたかったのでは?
ご指摘のとおりです。
それと、前回の回答の続きという注釈が必要でした。
http://q.hatena.ne.jp/1174771937
あと、cat_sortとsub_sortは説明がわかりやすくなるかと思い英字にしたのですが、実際は数字で行います。
言い訳ですが、寝てなくてモウロウとなっていました。
説明不足でホントすいませんm(_ _)m
前回の質問で回答を頂き、その後の応用はバッチリのつもりではいたのですが・・・。
一応ネットで、ソートや多次元配列の合体は検索掛けてみて、例文は見つけたのですが、今一自分のやりたいことに応用できませんでした。
とりあえず、お二人の教えていただいたコードを元に作成し、正常稼動するまで確認したいと思います。
また、無事実行したならコメントで改めて御礼を申したいと思います。