thinkphp合并数组问题

$a = array('0','1');
$b = array_push($a,"2");
这样无法将2添加到$a,显示int3

array_push将指定的值添加到某数组的结尾,返回添加后的数组长度,并不是新数组的值
$a = array('0','1');
$b = array_push($a,"2");     //$b是新添加后数组的长度
var_dump($a);               //此时打印$a
//输出:
array (size=3)
  0 => string '0' (length=1)
  1 => string '1' (length=1)
  2 => string '2' (length=1)

追问

不是这问题,array_push添加"小明"可以,但是如果添加name=>"小明"就不行了

追答

它后面添加的值要么是一个字符串,要么是一个数组:

$a = array('0','1');
$b = array_push($a,array('name'=>'小明'));
var_dump($b);        //输出还是数组的长度
var_dump($a);
//输出:
array (size=3)
  0 => string '0' (length=1)
  1 => string '1' (length=1)
  2 => 
    array (size=1)
      'name' => string '小明' (length=6)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-15
你输出的是$b吧 array_push()该函数返回的是新数组的长度
print_r($a); 输出就是你要的数组!追问

不是这问题,array_push添加"小明"可以,但是如果添加name=>"小明"就不行了

追答

查询手册看array_push()函数的参数返回值等。
如果只是给$a中添加一个元素 可以用直接赋值,提高效率!
如果是合并两个有多个元素的数组 并且确定键值不重复,用array_merge()函数 合并数组

相似回答