我試着合併一個數組,當它通過函數創建時,它有一個數組。我有一個函數,它返回一個數組。PHP數組合並:不是數組?
class myarray
{
public function getAr($id)
{
// mysql query
while($dd= $database->fetch(PDO::FETCH_ASSOC))
{
$data[] = $dd; //there's values in the array when its being populated through the function of the while loop
}
return $data;
}
public function get3($id)
{
// mysl query
while($dd= $database->fetch(PDO::FETCH_ASSOC))
{
$data[] = $dd; //there's values in the array when its being populated through the function of the while loop
}
return $data;
}
}
爲什麼我試圖把數組合併到一起:
$get = new myarray();
while($row = $fet->fetch(PDO::FETCH_ASSOC))
{
$arrayAr = $get->getAr($id);
$array3 = $get->get3($id);
$new_array = array_merge($arrayAr ,$array3); //this gives me the error
print_r($arrayAr); //displays array
}
print_r($arrayAr); //displays nothing, why is that?
它說,它不是一個數組?
array_merge() [function.array-merge]: Argument #1 is not an array
但我不能print_r($arrayAr);
及其類似while循環中的數組,但它不會顯示在它之外什麼?
當我嘗試這個...
$new_array = array_merge((array)$arrayAr ,(array)$array3);
它不顯示錯誤,但它也不會被合併。
幫助?
感謝
問題1:您正在循環循環。問題2:你每次都覆蓋'$ new_array'。問題3:變量可能返回空(即,如果沒有任何東西可以循環,'get3'可以返回undefined)。 – jeremyharris
@jeremyharris @jeremyharris我的數組確實有價值,我試圖合併,這是導致問題的原因。覆蓋陣列是一個不同的問題,我可以看看。問題是讓數組合並,並說它不是一個真正的數組,當它通過print_r顯示爲一個數組? – hellomello
您是否在循環之前嘗試過實例化它?在循環之前添加'$ arrayAr = array();否則,當您嘗試第一次使用合併時,它不會知道它是一個數組。 – jeremyharris