お世話になります。
PHPで配列の要素同士を比較して、一致するものがあれば、比較対象の他の要素を取得するスマートな方法を検討しています。
下記のコードの例の場合
$array_ko
のなかの$array_ko[0][0]にあるAが
$array_Otsu
のなかの$array_Otsu[0][0]のAと一致する場合
$array_Otsu[0][1]の"a"を取得することが目的です。
イメージとしてはエクセルのvlookupに近いです。
Aをkeyにして、他のデータの"a"を取得したいということになります。
ここで$array_OtsuはMYSQLからfetchallしてきたデータなので、
もともとはMYSQL上でJOINさせることで解決しようと考えたのですが
今回は2段階で、もし$array_Otsu該当がなければ、
$array_Heiから同様に検索をしていこうとしているため、php上での
処理を検討しております。
どなたかsmartな解決法をアドバイスご教示願えますでしょうか。
宜しくお願い申し上げます。
PHP
1$array_ko= 2Array 3( 4 [0] => Array 5 ( 6 [0] => A 7 [1] => 100 8 [2] => 200 9 [3] => 300 10 ) 11//以下省略 12) 13 14$array_Otsu= 15Array 16( 17 [0] => Array 18 ( 19 [0] => A 20 [1] => "a" 21 [2] => "b" 22 [3] => "c" 23 ) 24 [1] => Array 25 ( 26 [0] => B 27 [1] => "d" 28 [2] => "e" 29 [3] => "f" 30 ) 31) 32 33//もし$array_Ots該当がなければ、こちらの配列から検索する 34$array_Hei= 35Array 36( 37 [0] => Array 38 ( 39 [0] => C 40 [1] => "foo" 41 [2] => "hoge" 42 ) 43//以下省略 44) 45
こんな古典的にやりかたしか思いつかないのですが、
配列の要素の量が重いのでphpの処理がすごく重い気がします。。。
PHP
1for ($i=0; $i <count($array_Otsu) ; $i++) { 2for ($i1=0; $i1 <count($array_Hei) ; $i1++) 3 if ($array_ko[0][0]==$array_Otsu[$i][0]) { 4 $get=$array_Otsu[$i][1]; 5 }else//省略 6}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/10 06:23
2017/02/10 06:27
2017/02/10 08:33
2017/02/10 08:59
2017/02/10 09:33
2017/02/13 01:14
2017/02/13 02:14
2017/02/13 02:31