データベースに 2 つのユーザー名があります。このクエリを作成した後、それらがすべて一度に配列に挿入されるのはなぜですか? $arr[0] を出力すると、2 つの部分がすべて出力されます。それぞれ配列に見つかったデータをどのように変更すればよいでしょうか?
<?php$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");$stmt=$pdo->prepare("select * from user");$stmt->execute();$res=$stmt->fetchall(PDO::FETCH_ASSOC);foreach($res as $v){ $arr=array(); $arr[]=$v['username']; echo $arr[0];}?>
結果を投稿してください! !
foreach($res as $v){
$arr=array(); // ループを通じて毎回配列が初期化される場合
$arr[]=$v['username'] // 配列は要素は 1 つだけあります
echo $arr[0]; // 配列の唯一の要素を出力します
次のように調整します:
$arr=array();
foreach($res as $v){
$ arr[]=$ v['ユーザー名'];
}
print_r($arr);
試してみましょう
結果を投稿してください! !
foreach($res as $v){
$arr=array(); // If配列はループするたびに初期化されます
$arr[]=$v['username']; // 毎回配列内の要素は 1 つだけになります
echo $arr[0]; // の唯一の要素を出力します。配列
}
次のように調整します:
$arr=array();
foreach($res as $v){
$arr[]=$v['username']
}
print_r($arr); ;
試してみてください
foreach($res as $v){
$arr=array(); //Every If各ループで配列を初期化します
$arr[]=$v['username']; // 毎回、配列内の要素は 1 つだけになります
echo $arr[0]; // の唯一の要素を出力します。配列
}
次のように調整します:
$arr=array();
foreach($res as $v){
$arr[]=$v['username']
}
print_r($arr); ;
試してみてください
foreach($res as $v){
$arr=array(); // ループを通じて毎回配列を初期化する場合
$arr[]=$v['username']; //毎回、配列には 1 つの要素しかありません
echo $arr[0] // 配列の唯一の要素を出力します
次のように調整します:
$arr=array(); as $v){
$ arr[]=$v['ユーザー名']
}
試してみましょう
結果が変わりました
こうやって書くと、当初は次のような結果になると思っていました Array ( [0] => wang ) Array ( [1] => zhang ) しかし、なぜこのようになったのですか Array ( [0] = > wang ) Array ([0] => wang [1] => zhang) なぜ 2 つの配列が異なるのでしょうか?私が望む結果は次のようになります Array ([0] => wang [1] => zhang)
解決策は、 $arr=array(); を設定することです。 foreach の外側に設定し、外側に $k=0 を設定し、foreach の内側に $arr[$k]=$v['username']; を設定し、foreach の最後に $k++ を設定します
$arr =array( );
$k=0;
$arr[$k]=$v['ユーザー名']
print_r($arr) ;
解決策は、 foreach の外側で $arr=array(); を設定し、次に $k=0 を外側に設定し、 foreach の内側で $arr[$k]=$v['username'] を設定し、次に $k++ を設定します。 foreach の終わり
$arr=array();
foreach($res as $v){
print_r($arr);
k を追加する必要はありません。単に print_r($arr); を外側に移動します。