2011-03-28 83 views
3

当我通过array_push()添加一个字符串值转换成数组,它给我一个数值,即如何添加一个字符串值到PHP数组

$array=array("one","two","three"); 
$array2=array("test","test2"); 
foreach($array as $value){ 
    if($value==='one'){ 
     $push=array_push($array2, $value); 
    } 
} 
print_r($push); 

它输出3。什么我想是$array2 = array("test","test2","one")

+0

好,你的代码工作正常...... – mauris 2011-03-28 11:07:05

+0

是的代码工作正常,但我需要'一个'应该添加在数组的末尾,当我'print_r($ push)'应该是这样的'array [0] = >测试中,[1] => TEST2,[2] => one' – 2011-03-28 11:11:54

回答

8

array_push正在为其设计。

它将添加该值并返回该数组中的元素数。

所以它是自然的,如果它返回3你的数组有2个元素后阵列推现在有三个元素。

你应该print_r($array2)你的数组,看看元素。

4

这条线:

$push = array_push($array2, $value); 

应该只是

array_push($array2, $value); 

array_push()使用参考阵列的第一个参数。当您print_r()时,您打印阵列$array2而不是$push

0

array_push通过引用获取数组,并返回数组中新的元素数量,而不是如here所述的新数组。这就是为什么你得到3.如果你想看到阵列中的元素使用printr($array2);

1

您正在打印array_push的返回值,这是推后的数组中的项目数。试试这个:

<?php 

$array = array("one","two","three"); 
$array2 = array("test","test2"); 

foreach ($array as $value) { 
    if ($value === 'one') { 
     array_push($array2, $value); 
    } 
} 

print_r($array2); 
0

真的,你应该使用$array2[] = $value;这将使值在第一个可用数字键在阵列中,而不是array_push()

要获得最后一个元素的值在数组中(也就是你刚才添加的),并保持阵列完好,使用end($array),或者得到的最后一个元素,并从数组中删除它,使用array_pop($array)