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
)