PHP:试图合并数组,但在数组从函数返回时不合并实际数组?

PHP:试图合并数组,但在数组从函数返回时不合并实际数组?,php,arrays,class,function,merge,Php,Arrays,Class,Function,Merge,我有一个函数,它返回一个数组 class myarray { public function getAr() { // mysql query while($dd= $database->fetch(PDO::FETCH_ASSOC)) { $data[] = $dd; //there's values in the array } return $dat

我有一个函数,它返回一个数组

class myarray
{
 public function getAr()
   {
      // mysql query
      while($dd= $database->fetch(PDO::FETCH_ASSOC))
           {
               $data[] = $dd; //there's values in the array
           }
               return $data;
   }
 public function get3()
   {
      // mysl query
      while($dd= $database->fetch(PDO::FETCH_ASSOC))
           {
               $data[] = $dd; //there's values in the array
           }
               return $data;
   }    
}

为什么我尝试将阵列合并在一起:

$get = new myarray();
$arrayAr = $get->getAr();
$array3 = $get->get3();
$new_array = array_merge($arrayAr ,$array3);
它说它不是数组

array_merge() [function.array-merge]: Argument #1 is not an array 
但是我可以打印($arrayAr)和它类似于一个数组

帮忙


感谢

数组
是内置的名称;您必须更改类的名称。此外,您应该定义
$d
():


问题似乎是您正在为类使用保存的名称。你真的不应该在语言中使用具有其他含义的关键字作为变量名。就像你不会调用一个变量
array\u merge
,因为已经有一个函数叫做

这个代码似乎对我有用-

class customArray{
  public function getAr(){
    $data[] = 'Stack';
    return $data;
  }

  public function get3(){
    $data[] = 'Overflow';
    return $data;
  } 
}

$get = new customArray();
$arrayAr = $get->getAr();
$array3 = $get->get3();
print_r(array_merge($arrayAr ,$array3))
产出-

Array
(
    [0] => Stack
    [1] => Overflow
) 
但是,如果使用类名
数组
,则会出现以下错误-

PHP分析错误:语法错误,意外的T_数组,需要T_字符串


我认为你不会真的给你的类命名
array
-这可能会引起一些混乱。。。这是您正在使用的代码还是一些伪代码来简化问题?
$d
也不知从何而来。我甚至不知道如何运行它
类数组
应该会给您一个
PHP解析错误
。但除此之外,您的代码两次返回一个包含NULL的数组。这是意料之中的,因为像@Shikiryu所说的那样,
$d
是从无到有的。我需要的是
$data[]
,而不是数组($d);这里应该有填充的值,我只是把它留空了simplicity@andrewliu嗯,我不能接受你没有包括在问题中的代码或要求。当然,如果您在
$d
之后定义
$data
,您可以使用
$data[]=$d。我编辑了我的OP,我想知道我现在的问题是否有意义?@andrewliu将来,请不要对你的问题进行激烈的编辑。这将使所有未来的游客感到困惑。相反,只需问一个新问题(或者在评论中链接到它)。您的问题与
array\u merge
无关。相反,您的查询要么返回空结果,要么
$database
不是数据库(调用
fetch
强烈建议这样做)。我已修订了这项答覆。
class customArray{
  public function getAr(){
    $data[] = 'Stack';
    return $data;
  }

  public function get3(){
    $data[] = 'Overflow';
    return $data;
  } 
}

$get = new customArray();
$arrayAr = $get->getAr();
$array3 = $get->get3();
print_r(array_merge($arrayAr ,$array3))
Array
(
    [0] => Stack
    [1] => Overflow
)