当我通过array_push()
将一个字符串值添加到数组中时,它给出了一个数值,即
$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 :(得分:11)
array_push正在为其设计。
它将添加该值并返回该数组中元素的数量。
所以很自然,如果它返回3你的数组在数组推送后有2个元素,现在有三个元素。
你应该print_r($array2)
你的数组并查看元素。
答案 1 :(得分:6)
这一行:
$push = array_push($array2, $value);
应该只是
array_push($array2, $value);
array_push()
使用对数组的引用作为第一个参数。当您print_r()
时,打印数组$array2
,而不是$push
。
答案 2 :(得分:3)
您正在打印返回值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);
答案 3 :(得分:0)
array_push修改$ array2。 $ push包含count($ array2)。
答案 4 :(得分:0)
array_push通过引用获取数组并返回数组中新的元素数,而不是here所述的新数组。这就是你得到3的原因。如果你想看到数组中的元素,请使用printr($array2);
答案 5 :(得分:0)
实际上,您应该使用$array2[] = $value;
,它会将值放在数组中的第一个可用数字键中,而不是array_push()
。
要获取数组中最后一个元素的值(即刚刚添加的内容)并保持数组完整,请使用end($array)
,或者获取最后一个元素并将其从数组中删除,使用{{1 }}