Summary: in this tutorial, you’ll learn how to use PHP array destructuring to assign elements of an array to multiple variables.
Introduction to the PHP array destructuring #
Suppose that you have an array returned by a function parse_url()
:
<?php
$urls = parse_url('https://www.phptutorial.net/');
var_dump($urls);
Code language: PHP (php)
Output:
array(3) {
["scheme"]=> string(5) "https"
["host"]=> string(19) "www.phptutorial.net"
["path"]=> string(1) "/"
}
Code language: PHP (php)
To assign the elements of the array to multiple variables, you can use the list()
construct like this:
<?php
list('scheme' => $scheme,
'host' => $host,
'path'=>$path
) = parse_url('https://www.phptutorial.net/');
var_dump($scheme, $host, $path);
Code language: PHP (php)
Output:
string(5) "https"
string(19) "www.phptutorial.net"
string(1) "/"
Code language: PHP (php)
PHP 7.1 introduced a new way of unpacking the array’s elements into variables. It’s called array destructuring:
<?php
[
'scheme' => $scheme,
'host' => $host,
'path'=>$path
] = parse_url('https://www.phptutorial.net/');
var_dump($scheme, $host, $path);
Code language: PHP (php)
Output:
string(5) "https"
string(19) "www.phptutorial.net"
string(1) "/"
Code language: PHP (php)
Like the list()
, the array destructuring works with both indexed and associative arrays. For example:
<?php
$person = ['John','Doe'];
[$first_name, $last_name] = $person;
var_dump($first_name, $last_name);
Code language: PHP (php)
Output:
string(4) "John"
string(3) "Doe"
Code language: PHP (php)
Skipping elements #
The array destructuring syntax also allows you to skip any elements. For example, the following skips the second element of the array:
<?php
$person = ['John','Doe', 24];
[$first_name, , $age] = $person;
var_dump($first_name, $age);
Code language: PHP (php)
Output:
string(4) "John"
int(24)
Code language: PHP (php)
Swapping variables #
To swap the values of two variables, you often use a temporary variable like this:
<?php
$x = 10;
$y = 20;
// swap variables
$tmp = $x;
$x = $y;
$y = $tmp;
var_dump($x, $y);
Code language: PHP (php)
Now, you can use the array destructuring syntax to make the code shorter:
<?php
$x = 10;
$y = 20;
// swap variables
[$x, $y] = [$y, $x];
var_dump($x, $y);
Code language: PHP (php)
Parsing an array returned from a function #
Many functions in PHP return an array. The array destructuring allows you to parse an array returned from a function. For example:
<?php
[
'dirname' => $dirname,
'basename' => $basename
] = pathinfo('c:\temp\readme.txt');
var_dump($dirname, $basename);
Code language: PHP (php)
Output:
string(7) "c:\temp"
string(10) "readme.txt"
Code language: PHP (php)
Summary #
- Use the PHP array destructuring to unpack elements of an array to variables.