如何在PHP中向空数组添加元素?

Aqu*_*Tub 458 php arrays variables

如果我在PHP中定义一个数组,例如(我没有定义它的大小):

$cart = array();
Run Code Online (Sandbox Code Playgroud)

我只是使用以下内容添加元素吗?

$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
Run Code Online (Sandbox Code Playgroud)

PHP中的数组是否有添加方法,例如,cart.add(13)

Bar*_* S. 739

两者array_push和你描述的方法都有效.

$cart = array();
$cart[] = 13;
$cart[] = 14;
// etc

//Above is correct. but below one is for further understanding
$cart = array();
for($i=0;$i<=5;$i++){
    $cart[] = $i;  
}
echo "<pre>";
print_r($cart);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

是相同的:

<?php
$cart = array();
array_push($cart, 13);
array_push($cart, 14);

// Or 
$cart = array();
array_push($cart, 13, 14);
?>
Run Code Online (Sandbox Code Playgroud)

  • 正如PHP文档中所述,如果你每次只推送一个元素(比如在循环中)或单个元素一次,最好使用`$ cart [] = 13`方法,不仅因为它的字符较少执行相同的操作,但它也没有强加函数调用的性能开销,array_push()会这样做.编辑:但是,很好的答案.实际上相同,大多数用途甚至不会注意到性能差异,但有助于了解这些细微差别. (170认同)
  • 只是我或者`$ cart [] = ...`语法,乍一看,看起来像变量赋值而不是隐式array_push? (61认同)
  • 我只是提供我的另一种观点,即其他语言程序员阅读cart [] = ...的语法非常困惑,我有很多语言的经验,我从来没有猜到它的作用. (15认同)
  • 这绝对对我有用.我不介意解释为什么它**不是**任务. (4认同)
  • $ cart [] = 13; 是比较快的.字符较少,看起来更好. (3认同)
  • Mattygabe 的观点可能值得怀疑,因为优化是在真正获得回报时才需要的,但并非在所有情况下都需要优化(根据 Steve McConnell 的说法)。代码的可读性和抗挫性通常更为重要。需要循环测试中的实验事实来表明“=”应该优于“array_push”。 (2认同)
  • @wolfdawn 我不同意你关于其他语言采用这种语法的想法,但在 python 中,你可以简单地调用 `a.append(new_val)` 或 `a.push(new_val)` 来获取列表。 (2认同)
  • @AturSams我会在第二个语法(为了微观优化)上随时使用 array_push (为了可读性)。在我所知道的所有语言中,包括 PHP 本身, array[index] = value; 是一个作业。为什么删除索引意味着在数组末尾添加新值?PHP 语法有时很奇怪...... (2认同)

OIS*_*OIS 70

最好不要使用array_push,只使用你的建议.这些功能只会增加开销.

//We don't need to define the array, but in many cases it's the best solution.
$cart = array();

//Automatic new integer key higher than the highest 
//existing integer key in the array, starts at 0.
$cart[] = 13;
$cart[] = 'text';

//Numeric key
$cart[4] = $object;

//Text key (assoc)
$cart['key'] = 'test';
Run Code Online (Sandbox Code Playgroud)

  • "如果你在一个循环中向一个数组中添加多个值,那么使用array_push比重复[] =语句更快"http://www.php.net/manual/en/function.array-push.php#84959 (11认同)
  • 如果您的用例一次添加一个或多个项目,则绝对正确.如果同时知道所有值,那么最好只使用array_push表示法,具体取决于必须添加多少项,每次重新键入数组名称时的额外字符可能比函数调用更多的性能障碍高架.一如既往,在选择时应该进行判断.好答案! (3认同)
  • 这个答案是最完整的。 (2认同)

fic*_*489 11

根据我的经验,当密钥不重要时,解决方案很好(最好):

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
Run Code Online (Sandbox Code Playgroud)


and*_*ndi 10

你可以使用array_push.它将元素添加到数组的末尾,就像在堆栈中一样.

你也可以这样做:

$cart = array(13, "foo", $obj);
Run Code Online (Sandbox Code Playgroud)


小智 5

$cart = array();
$cart[] = 11;
$cart[] = 15;

// etc

//Above is correct. but below one is for further understanding

$cart = array();
for($i = 0; $i <= 5; $i++){
          $cart[] = $i;  

//if you write $cart = [$i]; you will only take last $i value as first element in array.

}
echo "<pre>";
print_r($cart);
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)