2016-12-20 64 views
-1

我有這個錯誤,我似乎無法解決。注意:數組到字符串轉換在PDO

下面是代碼

$this->stmt = $this->handle->prepare("SELECT * FROM tb_ph WHERE totalprofit = 0 AND status = '1' AND checks = ''"); 

$var = $this->stmt->fetchAll(); 

$var返回,我很樂意遍歷,以獲得各自的ID和用戶名一多維數組。 現在的問題是,如果我

foreach($var as $key => $value){ 
    $id = $value['id']; 
    $username = $value['username']; 
    $phone = $value['phone']; 
} 

我得到通知:數組字符串轉換錯誤。

var_dump($var)

Array 
(
    [0] => Array 
     (
      [id] => 3 
      [0] => 3 
      [username] => rose 
      [1] => rose 
      [phone] => +2782345578952 
      [2] => +2782345578952 
     ) 

    [1] => Array 
     (
      [id] => 4 
      [0] => 4 
      [username] => josh 
      [1] => rose 
      [phone] => +0182345578952 
      [2] => +0182345578952 
     ) 

) 

如何使循環得到的只是ID,用戶名和電話返回兩個結果每一次?

+1

您的代碼在哪裏導致通知?你最好展示你的代碼嘗試,這樣我們可以幫助你找到你的錯誤,而不僅僅是期望有人爲你編寫代碼,而且你永遠不會學習如何正確地調試你自己的代碼。 – Sean

+0

那就是那裏的代碼。除非我不明白你的意思是代碼嘗試 – ebuka

+0

這裏顯示的代碼沒有'foreach($ var ...'。你只顯示一個'var_dump($ var)',並且自$ var = $ this-> stmt-> fetchAll();'也不會創建'Notice',那麼你不會顯示你的foreach($ var ...'代碼嘗試 – Sean

回答

1

看看這個位非常密切:

Array 
(
    [0] => Array 
     (

它表明你,你有什麼陣,因此在你的foreach得到什麼的數組另一個數組

foreach($var as $arr) { 
    /* here $arr is an array in calling print on it will produce the warning you have already seen but ...*/ 
    print $arr[$id]; 

} 

因爲你是印刷這裏只是一個數組的一個元素。同樣打印$ arr ['username']

+0

非常感謝。它的工作,但它只是第一個循環的值。就像在我的例子中那樣,數組的值是2,但是在這裏只顯示了一個結果。 – ebuka

+1

非常歡迎。我很高興得到了幫助。既然你在這裏還是新手,我是否可以指出在這裏說'感謝'的首選方式是通過提高投票的好問題和有用的答案(一旦你有足夠的聲望這樣做),並接受最有幫助的答案到任何問題你問(這也給你一個小小的提升你的聲譽)。 [當某人回答](http://stackoverflow.com/help/someone-answers) – e4c5

相關問題