To add elements to an empty array in PHP, you can use several methods. Below is a detailed explanation with examples:
1. Square Bracket Syntax []
(Recommended for single elements)
- Appends elements to the end of the array.
- Automatically assigns numeric indices starting from
0
. - Efficient for single elements.
// Initialize an empty array
$fruits = [];
// Add elements
$fruits[] = 'Apple';
$fruits[] = 'Banana';
$fruits[] = 'Cherry';
print_r($fruits);
/* Output:
Array
(
[0] => Apple
[1] => Banana
[2] => Cherry
)
*/
2. array_push()
(Ideal for multiple elements)
- Appends one or more elements to the end of the array.
- Returns the new number of elements.
- Slightly less efficient than
[]
for single elements but optimal for adding multiple values at once.
$colors = [];
// Add one element
array_push($colors, 'Red');
// Add multiple elements
array_push($colors, 'Green', 'Blue');
print_r($colors);
/* Output:
Array
(
[0] => Red
[1] => Green
[2] => Blue
)
*/
3. Assign with Specific Index
- Manually set an index for the element.
- Useful for non-sequential keys or associative arrays.
- Avoid gaps in indices to prevent unexpected behavior.
$languages = [];
// Add elements with explicit indices
$languages[0] = 'PHP';
$languages[1] = 'JavaScript';
$languages[2] = 'Python';
// Add with a string key (associative array)
$languages['backend'] = 'Java';
print_r($languages);
/* Output:
Array
(
[0] => PHP
[1] => JavaScript
[2] => Python
[backend] => Java
)
*/
4. array_unshift()
(Prepend to Beginning)
- Adds elements to the start of the array.
- Re-indexes numeric keys (may impact performance for large arrays).
- Original indices are reset starting from
0
.
$stack = ['Middle'];
// Prepend elements
array_unshift($stack, 'Start');
array_unshift($stack, 'New Start');
print_r($stack);
/* Output:
Array
(
[0] => New Start
[1] => Start
[2] => Middle
)
*/
Key Considerations:
- Efficiency: Use
[]
for single elements;array_push()
for multiple. - Indices: Numeric keys auto-increment. Gaps can occur if indices are skipped.
- Associative Arrays: Use explicit keys (e.g.,
$array['key'] = value
).
Example Workflow:
// Start with an empty array
$cart = [];
// Add items
$cart[] = 'Book'; // Index 0
$cart[] = 'Pen'; // Index 1
array_push($cart, 'Ruler', 'Eraser'); // Indices 2, 3
$cart['discount'] = '10%'; // Key 'discount'
print_r($cart);
/* Output:
Array
(
[0] => Book
[1] => Pen
[2] => Ruler
[3] => Eraser
[discount] => 10%
)
*/
Best Practices:
- Initialize Arrays: Declare
$array = []
before adding elements. - Avoid Mixing Key Types: Prefer consistent keys (all numeric or all associative).
- Prevent Index Gaps: Use automatic indexing (
[]
orarray_push()
) unless explicit keys are needed.