Home  >  Article  >  Backend Development  >  How to convert PHP two-dimensional array to one-dimensional array

How to convert PHP two-dimensional array to one-dimensional array

PHPz
PHPzOriginal
2023-04-19 10:07:141098browse

In PHP, a two-dimensional array is a data structure that stores ordered data. It can organize multiple data elements into an array and access each element through an index. However, in some cases, we need to convert a two-dimensional array into a one-dimensional array to facilitate other operations. This article will introduce in detail how to convert a two-dimensional array into a one-dimensional array in PHP.

1. Use foreach loop to traverse

Using foreach loop is the most common method to convert a two-dimensional array into a one-dimensional array. The specific steps are as follows:

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//定义一维数组
$studentInfo = array();

//遍历二维数组
foreach($students as $student) {
    foreach($student as $key => $value) {
        //将二维数组的元素添加到一维数组中
        $studentInfo[$key][] = $value;
    }
}

//输出一维数组
print_r($studentInfo);

In the above code, we first define a two-dimensional array $students, containing the names, ages and genders of three students. Then, we define a one-dimensional array $studentInfo to store student information. Use a foreach loop to iterate through the two-dimensional array and add the elements inside to the one-dimensional array. Finally, the converted one-dimensional array is output. The following results will be output:

Array
(
    [name] => Array
        (
            [0] => 张三
            [1] => 李四
            [2] => 王五
        )

    [age] => Array
        (
            [0] => 18
            [1] => 20
            [2] => 19
        )

    [gender] => Array
        (
            [0] => 男
            [1] => 女
            [2] => 男
        )

)

It can be seen that the two-dimensional array $students is successfully converted into a one-dimensional array $studentInfo.

2. Use the array_map function

In addition to using the foreach loop, we can also use the PHP built-in function array_map to convert a two-dimensional array to a one-dimensional array. The specific steps are as follows:

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//定义一个函数,用于将二维数组元素转换为一维数组
function flatten($item) {
    return $item;
}

//调用array_map函数,将二维数组转换为一维数组
$studentInfo = array_map("flatten", $students);

//输出一维数组
print_r($studentInfo);

In the above code, we use the defined two-dimensional array $students. In addition, we define a function called flatten() to convert each element of the two-dimensional array into a one-dimensional array. Use the array_map function to call the flatten() function to convert the two-dimensional array into a one-dimensional array $studentInfo. The following results will be output:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 20
            [gender] => 女
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 19
            [gender] => 男
        )

)

It can be seen that the structure of using the array_map function is more concise than using the foreach loop.

3. Use the implode function

Finally, we can also use the implode function to convert the two-dimensional array into a comma-separated string, and then use the explode function to convert the string into a dimensional array. The specific steps are as follows:

//定义二维数组
$students = array(
    array("name" => "张三", "age" => 18, "gender" => "男"),
    array("name" => "李四", "age" => 20, "gender" => "女"),
    array("name" => "王五", "age" => 19, "gender" => "男")
);

//首先将二维数组转换成字符串
$str = implode(",", $students);

//然后使用explode函数将字符串转换成一维数组
$studentInfo = explode(",", $str);

//输出一维数组
print_r($studentInfo);

In the above code, we first use the implode function to convert the two-dimensional array into a comma-separated string, and then use the explode function to convert the string into a one-dimensional array $studentInfo. The following results will be output:

Array
(
    [0] => Array
        (
            [name] => 张三
            [age] => 18
            [gender] => 男
        )

    [1] => Array
        (
            [name] => 李四
            [age] => 20
            [gender] => 女
        )

    [2] => Array
        (
            [name] => 王五
            [age] => 19
            [gender] => 男
        )

)

It can be seen that this method is the same as using the array_map function.

In summary, although it is not common to convert a two-dimensional array into a one-dimensional array, we can use the foreach loop, array_map function or implode function method to achieve this function. When choosing, developers should choose the method that best suits them based on the actual situation.

The above is the detailed content of How to convert PHP two-dimensional array to one-dimensional array. 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