資料庫裡面有兩個使用者名稱 我寫的這個查詢後為什麼一下子全都插入到數組裡面去了 我列印$arr[0]一下都出來了 我就是想把查出來的兩條資料分別插入到數組中 我這個應該怎麼改呢?
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']; //每次數組只會有一個元素
echo $arr[0]; //列印出數組唯一一個元素
}
調整如下:
$arr=array();
foreach($res as $v){
$arr[]=$v['username'];
}
print_r($arr);
試試看吧
貼出結果!!
echo出來的結果是wangzhang
而我想要的是這樣的形式 ('wang','zhang')
foreach($res as $v){
$arr=array(); //每次迴圈都初始化數組的話
$arr[]=$v['username']; //每次數組只會有一個元素
echo $arr[0]; //列印出數組唯一一個元素
}
調整如下:
$arr=array();
foreach($res as $v){
$arr[]=$v['username'];
}
print_r($arr);
試試看吧
這樣結果變了
這樣寫我本來以為結果是這樣的 Array ( [0] => wang ) Array ( [1] => zhang ) 但是為什麼是這樣的Array ( [0] => wang ) Array ( [0] => wang [1] => zhang ) 為什麼是兩個不一樣的數組? 我想要的結果是這樣的 Array ( [0] => wang [1] => zhang )
foreach($res as $v){
$arr=array(); //每次迴圈都初始化數組的話
$arr[]=$v['username']; //每次數組只會有一個元素
echo $arr[0]; //列印出數組唯一一個元素
}
調整如下:
$arr=array();
foreach($res as $v){
$arr[]=$v['username'];
}
print_r($arr);
試試看吧
這樣結果變了
這樣寫我本來以為結果是這樣的 Array ( [0] => wang ) Array ( [1] => zhang ) 但是為什麼是這樣的Array ( [0] => wang ) Array ( [0] => wang [1] => zhang ) 為什麼是兩個不一樣的數組? 我想要的結果是這樣的 Array ( [0] => wang [1] => zhang )
foreach的第一次迭代會運行一次$arr=array();,產生了一個數組,將wang放進去了,第二次迭代又運行了一次$arr=array();,又產生了另一個數組,將zhang放進去了,所以會產生兩個不一樣的數組。
foreach($res as $v){
$arr=array(); //每次迴圈都初始化數組的話
$arr[]=$v['username']; //每次數組只會有一個元素
echo $arr[0]; //列印出數組唯一一個元素
}
調整如下:
$arr=array();
foreach($res as $v){
$arr[]=$v['username'];
}
print_r($arr);
試試看吧
這樣結果變了
這樣寫我本來以為結果是這樣的 Array ( [0] => wang ) Array ( [1] => zhang ) 但是為什麼是這樣的Array ( [0] => wang ) Array ( [0] => wang [1] => zhang ) 為什麼是兩個不一樣的數組? 我想要的結果是這樣的 Array ( [0] => wang [1] => zhang )
foreach的第一次迭代會運行一次$arr=array();,產生了一個數組,將wang放進去了,第二次迭代又運行了一次$arr=array();,又產生了另一個數組,將zhang放進去了,所以會產生兩個不一樣的數組。
那麼怎樣得到一個包含這兩個值的數組呢 就是這種形式的Array ( [0] => wang [1] => zhang )
解決辦法是將$arr=array();設定在foreach的外面,然後在外面設個$k=0,在foreach裡面是$arr[$k]=$v['username']; ,然後在foreach裡的結尾將$k++
$arr=array();
$k=0;
foreach($res as $v){
$arr[$k]=$v['username'];
$k++;
}
print_r($arr);
解決辦法是將$arr=array();設定在foreach的外面,然後在外面設個$k=0,在foreach裡面是$arr[$k]=$v['username']; ,然後在foreach裡的結尾將$k++
$arr=array();
$k=0;
foreach($res as $v){
$arr[$k]=$v['username'];
$k++;
}
print_r($arr);
謝謝 不用加k 把print_r($arr);移到外面就行了