如何将字符串值添加到PHP数组中

11
当我通过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")


好的,你的代码运行正确。 - mauris
是的,代码运行正确,但我需要在数组末尾添加 one,并且当我使用 print_r($push) 时,它应该像这样:array [0]=>test,[1]=>test2,[2]=>one - souce code
7个回答

12

array_push 函数的功能正常。

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

所以如果它返回 3,那么你的数组在使用 array_push 前有 2 个元素,现在变成了三个。

你应该对数组使用 print_r($array2) 并查看元素。


8
这一行代码:
$push = array_push($array2, $value);

应该只是这样

array_push($array2, $value);
< p > array_push()使用数组的引用作为第一个参数。当你使用print_r()打印数组时,你打印的是数组$array2,而不是$push


6
你正在打印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);

4

实际上,你应该使用 $array2[] = $value; 这种方式将值放入数组的第一个可用数字键中,而不是 array_push()

要获取数组中最后一个元素的值(即您刚刚添加的值)并保持数组完整,请使用 end($array);要获取最后一个元素并将其从数组中删除,请使用 array_pop($array)


1
在现代编程中,您可以使用方括号方法将字符串或其他数据类型添加到数组中,例如:
$arr = ['hello'];
$arr[] = 'world';

这种方法将字符串'world'添加到$arr数组变量中。

现在,数组实际上看起来像这样['hello', 'world'],非常整洁,比array_push更快。

如果您要将多个元素推入数组,则使用array_push更合适。

我相当有信心,Square Bracket Method是在PHP 5.4中引入的。


1

0

array_push 通过引用传递数组,并返回数组中的新元素数量,而不是像这里描述的那样返回新数组。这就是为什么您得到了3的原因。如果您想查看数组中的元素,请使用printr($array2);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接