【发布时间】:2012-11-19 13:30:16
【问题描述】:
我在php的array_push函数中遇到了一个奇怪的问题。
让我们看看我的代码:
$sets_collection=array();
foreach($result['ques'] as $val){
$sets_collection=array_push($sets_collection,$val['set']);
}
比它给我的错误: 消息:array_push() 期望参数 1 是数组,给定整数
但是当我这样做时,它工作正常:
$sets_collection=array();
$i=0;
foreach($result['ques'] as $val)
{
$sets_collection[$i]=$val['set'];
$i++;
}
我的问题是为什么会发生这种情况,是否必须有一个数组的索引才能执行推送操作?因为在我的第一种情况下,数组 $set_collection 没有任何索引,请告诉我为什么会这样??
【问题讨论】:
-
RTFM for
array_push,查看其返回值并阅读示例。 -
语法错误!
$sets_collection[]=$val['set']与array_push($sets_collection,$val['set'])相同,并且 array_push 返回新的数组计数。第一次迭代后,您将看到案例 1 中的错误。