If I define an array in PHP such as (I don't define its size):
$cart = array(); Do I simply add elements to it using the following?
$cart[] = 13; $cart[] = "foo"; $cart[] = obj; Don't arrays in PHP have an add method, for example, cart.add(13)?
8 Answers
Both array_push and the method you described will work.
$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>"; Is the same as:
<?php $cart = array(); array_push($cart, 13); array_push($cart, 14); // Or $cart = array(); array_push($cart, 13, 14); ?> 13It's better to not use array_push and just use what you suggested. The functions just add overhead.
//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'; 5Based on my experience, solution which is fine(the best) when keys are not important:
$cart = []; $cart[] = 13; $cart[] = "foo"; $cart[] = obj; You can use array_push. It adds the elements to the end of the array, like in a stack.
You could have also done it like this:
$cart = array(13, "foo", $obj); $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>"; 1REMEMBER, this method overwrites first array, so use only when you are sure!
$arr1 = $arr1 + $arr2; 2$products_arr["passenger_details"]=array(); array_push($products_arr["passenger_details"],array("Name"=>"Isuru Eshan","E-Mail"=>"")); 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>"; } When one wants elements to be added with zero-based element indexing, I guess this will work as well:
// 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'; 0