Home  >  Article  >  Backend Development  >  php multidimensional array conversion

php multidimensional array conversion

PHPz
PHPzOriginal
2023-05-07 16:50:08477browse

In PHP programming, multidimensional array is a commonly used data structure. As business complexity increases, we may need to convert multi-dimensional arrays and perform some operations. In this article, we will introduce the conversion method from multi-dimensional array to one-dimensional array in PHP.

1. What is a multidimensional array

In PHP, an array is a special variable type used to store a series of values. A multidimensional array means that each element in the array is also an array. This element array can be two-dimensional, three-dimensional, or even more. The following is an example:

$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);

In this multi-dimensional array, $multiArray0 is 'banana'.

2. How to convert a multi-dimensional array into a one-dimensional array

Sometimes we need to convert a multi-dimensional array into a one-dimensional array and process it. The specific conversion methods are divided into the following three types:

  1. Use the array_merge function

The array_merge function can merge multiple arrays into one array and return a new array. We can use this function to compress a multi-dimensional array into a one-dimensional array.

$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
$oneArray = array();
foreach($multiArray as $value) {
    $oneArray = array_merge($oneArray, $value);
}
print_r($oneArray);

Running results:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => red
    [4] => yellow
    [5] => green
    [6] => sweet
    [7] => sour
    [8] => bitter
)

This method is suitable for situations where the dimensions of multi-dimensional arrays are not too high, but it will cause performance problems when processing large, high-dimensional multi-dimensional arrays.

  1. Use the built-in function array_walk_recursive

The array_walk_recursive function can traverse a multi-dimensional array and execute a user-defined callback function on all its values. We can use it to compress multi-dimensional arrays into one-dimensional arrays.

$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
$oneArray = array();
array_walk_recursive($multiArray, function($value) use(&$oneArray) {
    $oneArray[] = $value;
});
print_r($oneArray);

Running results:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => red
    [4] => yellow
    [5] => green
    [6] => sweet
    [7] => sour
    [8] => bitter
)

This method is a built-in function in PHP that can quickly traverse multi-dimensional arrays and compress them into one-dimensional arrays. However, due to the use of callback functions, code execution efficiency may be affected.

  1. Using recursive methods

Recursive methods are methods in which a function can call itself. We can use recursive methods to traverse multi-dimensional arrays and compress them into one-dimensional arrays.

function multi2single($multiArray, $oneArray = array()) {
    foreach($multiArray as $value) {
        if(is_array($value)) {
            $oneArray = multi2single($value, $oneArray);
        } else {
            $oneArray[] = $value;
        }
    }
    return $oneArray;
}
$multiArray = array(
    array('apple', 'orange', 'banana'),
    array('red', 'yellow', 'green'),
    array('sweet', 'sour', 'bitter')
);
$oneArray = multi2single($multiArray);
print_r($oneArray);

Running results:

Array
(
    [0] => apple
    [1] => orange
    [2] => banana
    [3] => red
    [4] => yellow
    [5] => green
    [6] => sweet
    [7] => sour
    [8] => bitter
)

The advantages of this method are fast traversal speed and simple code, and its performance is relatively good when processing large, high-dimensional multi-dimensional arrays.

Summary:

There are three ways to convert a multi-dimensional array into a one-dimensional array using the array_merge function, the array_walk_recursive function, and the recursive method. If you need to implement it quickly, you can use the array_walk_recursive function. If you need to optimize for performance, you can use a recursive approach.

Converting a multi-dimensional array into a one-dimensional array is a common operation in PHP programming. We can choose the appropriate method for processing according to the actual situation.

The above is the detailed content of php multidimensional array conversion. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn