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

如何在PHP中向空数组添加元素?,php,arrays,variables,Php,Arrays,Variables,如果我在PHP中定义一个数组,例如(我不定义它的大小): $cart=array(); 我是否简单地使用以下方法向其添加元素 $cart[]=13; $cart[]=“foo”; $cart[]=obj; PHP中的数组没有add方法吗,例如,cart.add(13)?您可以使用。 它将元素添加到数组的末尾,就像在堆栈中一样 你也可以这样做: $cart = array(13, "foo", $obj); 这两种方法都有效 $cart = array(); $cart[] = 13; $c

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

$cart=array();
我是否简单地使用以下方法向其添加元素

$cart[]=13;
$cart[]=“foo”;
$cart[]=obj;
PHP中的数组没有add方法吗,例如,
cart.add(13)

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

你也可以这样做:

$cart = array(13, "foo", $obj);
这两种方法都有效

$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>";
$cart=array();
$cart[]=13;
$cart[]=14;
//等
//以上是正确的。但下面一个是为了进一步了解
$cart=array();
对于($i=0;$i最好不要使用,而只使用您建议的功能。这些功能只会增加开销

// adding elements to an array with zero-based index
$matrix= array();
$matrix[count($matrix)]= 'element 1';
$matrix[count($matrix)]= 'element 2';
...
$matrix[count($matrix)]= 'element N';

如果希望使用基于零的元素索引添加元素,我想这也会起作用:

$arr1 = $arr1 + $arr2;

请记住,此方法将覆盖第一个数组,因此仅在确定时使用

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

()

根据我的经验,当按键不重要时,哪种解决方案是好的(最好的):

$products_arr["passenger_details"]=array();
array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"isuru.eshan@gmail.com"));
echo "<pre>";
echo json_encode($products_arr,JSON_PRETTY_PRINT);
echo "</pre>";

//OR

$countries = array();
$countries["DK"] = array("code"=>"DK","name"=>"Denmark","d_code"=>"+45");
$countries["DJ"] = array("code"=>"DJ","name"=>"Djibouti","d_code"=>"+253");
$countries["DM"] = array("code"=>"DM","name"=>"Dominica","d_code"=>"+1");
foreach ($countries as $country){
echo "<pre>";
echo print_r($country);
echo "</pre>";
}
$products\u arr[“乘客详细信息”]=array();
阵列推送($products\u arr[“乘客详细信息”]),阵列(“名称”=>“Isuru Eshan”,“电子邮件”=>“Isuru”。eshan@gmail.com"));
回声“;
echo json_encode($products_arr,json_PRETTY_PRINT);
回声“;
//或
$countries=array();
$countries[“DK”]=数组(“代码”=>“DK”,“名称”=>“丹麦”,“d_代码”=>“+45”);
$countries[“DJ”]=数组(“代码”=>“DJ”,“名称”=>“吉布提”,“d_代码”=>“+253”);
$countries[“DM”]=数组(“code”=>“DM”,“name”=>“Dominica”,“d_code”=>“+1”);
foreach($国家作为$国家){
回声“;
回声打印(国家);
回声“;
}
$cart=array();
$cart[]=11;
$cart[]=15;
//等
//上面是正确的,下面是进一步理解的
$cart=array();

对于($i=0;$i这两个
array\u 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>";
上面是正确的,下面是进一步理解

$customArray=array();

对于($i=0;$i“如果在循环中向数组添加多个值,则使用array_push比使用重复的[]=语句更快”如果您的用例一次添加一个或多个项,则绝对正确。如果所有值同时已知,则最好根据必须添加的项的数量使用array_push表示法。每次重新键入数组名称所产生的额外字符可能比函数调用o更妨碍性能ver head。一如既往,在选择时应该进行判断。答案很好!这个答案是最完整的。1)
array\u push()
有一个返回值,而其他方法没有。这可能是其开销的原因之一?除非您需要该返回值,否则使用其他方法似乎是共识。2)如果需要将元素添加到数组末尾,请使用
array_push()
+=
串联方法(此答案中未显示),或
$cart[]=13
方法。使用命名/数字键方法(
$cart[4]=$object
和$cart['key']='test'`方法不保证元素会被添加到数组的末尾,只保证元素会在数组中。@SherylHohman:This$cart[]=会将值添加到数组的末尾。如PHP文档中所述,如果每次只推一个元素(如在循环中)或者一次使用单个元素,最好使用
$cart[]=13
方法,这不仅是因为执行相同的操作需要更少的字符,而且也不会增加函数调用的性能开销,这会导致will.Edit:但是,答案很好。实际上是一样的,大多数用户甚至不会注意到性能差异,但有助于了解这些细微差别。是我还是
$cart[]=…
语法乍一看像变量赋值,而不是隐式数组\u push?对我来说确实如此。我不介意解释为什么它不是赋值。$cart[]=13;更快。字符更少,外观更好。我只提供另一种观点,其他语言程序员阅读cart[]的语法非常混乱=…,我有很多语言的经验,我从来没有猜到它是怎么做的。为什么投票失败,有人能解释为什么这不好吗?它不安全吗?@SandyBeach这不是一个答案$cart[]=$I;-这部分代码向数组添加元素-->$cart=[$I];-这将通过编译器,但你不会得到你想要的
$products_arr["passenger_details"]=array();
array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"isuru.eshan@gmail.com"));
echo "<pre>";
echo json_encode($products_arr,JSON_PRETTY_PRINT);
echo "</pre>";

//OR

$countries = array();
$countries["DK"] = array("code"=>"DK","name"=>"Denmark","d_code"=>"+45");
$countries["DJ"] = array("code"=>"DJ","name"=>"Djibouti","d_code"=>"+253");
$countries["DM"] = array("code"=>"DM","name"=>"Dominica","d_code"=>"+1");
foreach ($countries as $country){
echo "<pre>";
echo print_r($country);
echo "</pre>";
}
$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>";
$customArray = array();
$customArray[] = 20;
$customArray[] = 21;
$customArray = array();
for($i=0;$i<=12;$i++){
    $cart[] = $i;  
}
echo "<pre>";
print_r($customArray);
echo "</pre>";