ホームページ >バックエンド開発 >PHPチュートリアル >foreach が配列要素の最初の文字を出力するのはなぜですか?
$sql=mysql_query("select b.userid,b.username,b.card_no,b.buytime,b.commission1,m.level from buybak b left joinmember m on b.userid=m.userid where m.agentid ='".$user[userid]."' and b.status1>=0 " );
$array = @mysql_fetch_array($level1_orders);
foreach ($array as $rows) {
echo $rows.'< ;br>';//2 つの配列の情報を出力するループ
echo $rows['userid'].'
';//これは、各要素の最初の文字 (たとえば、ユーザー名が test の場合、t が出力されます。これはどうなっているでしょうか?
}
whileを使うと普通に出力できるのですが、foreachを使って出力する方法が知りたいです
$array = @my sql_fetch _array($ level1_orders);
print_r ($array) // それが何かを見る
$array = @mysql_fetch_array($level1_orders); // それが何かを見る
次に、上記の foreach トラバーサルはトラバーサルですこれは 2 次元配列ですが、$array は明らかに 1 次元配列です。
$array = @mysql_fetch_array($level1_orders);
print_r($array); // それが何であるかを見てみましょう
これは while ループからのもので、これは正しいです。 Array
(
[0] =&gt;] =&gt; 3
。=&gt;test3
; 2016-02-16 14:53:33
&gt; 2016-02-16 14:53:33 ] => {"1":5,"2":8,"3":10,"4":12}
[手数料1] => {"1":5,"2":8," 3 ":10、" 4 ":12}&gt; [userId] =&gt; 8
TEST8&gt; test8 ,"3":10,"4":12}
1 次元の配列を返します
したがって、私の実行には while ループを使用する必要がありますsql_fetch_array を使用してすべての結果を読み取ります
1 次元配列を走査するには、ループを 1 つ使用する必要があります。2 つ使用すると間違いです