php
かなり悩んだ・・・。
Perlのクセが抜けず、PHPでも配列で同じことをしようとして、どうしてもうまくいかない。
ずっと避けてきたので、今回はかなり意地になった。
で、結果がこれ。
私がよくやる法則なんですが、
mysql_fetch_arrayで取得したデータを配列に入れつつ、さらにその配列を配列にいれ、
returnで返す方法。
while($row = mysql_fetch_array($rs)) { $a1 = $row[0]; $b1 = $row[1]; $b2 = $row[2]; //配列にいれる。これは、$a_data = $row; でもいいんじゃないかと。どうだろ? $data = array($a1,$a2,$a3); //次に来るrowデータを配列として格納したいので、1回目に入れた配列を、配列に入れる。 array_push($a_data,$data); } //これをぐるぐると回すことで、1行ずつ取得したデータを配列に入れられる。 return ($a_data);
↑これが失敗結果。
Perlならこれで問題ないはずなのに!!(\@とかしなきゃいけないけど。)
な〜んで〜〜!なんでだよ!!
First argument should be an array
こんなエラーまで出る始末。「配列じゃない!」と怒られる。
配列だし!!!よくみろよ!配列なんだよ〜〜〜っ!!!!
つまり、「配列だよ」っていってやんなきゃわかんないらしい。
//配列です!と教えてやる。 $a_data = array(); while($row = mysql_fetch_array($rs)) { $a1 = $row[0]; $b1 = $row[1]; $b2 = $row[2]; //配列にいれる。これは、$a_data = $row; でもいいんじゃないかと。どうだろ? $data = array($a1,$a2,$a3); //次に来るrowデータを配列として格納したいので、1回目に入れた配列を、配列に入れる。 array_push($a_data,$data); } //これをぐるぐると回すことで、1行ずつ取得したデータを配列に入れられる。 return ($a_data);
↑これが成功例。ようやく思い通りの結果が得られた。
は〜〜〜・・・
Perlに比べるとmyとかいちいちつけなくても許してくれると思ったのが
大間違いだったなぁ・・・。
お疲れ。