Home  >  Article  >  Backend Development  >  PHP two-dimensional array to one-dimensional array retaining key names

PHP two-dimensional array to one-dimensional array retaining key names

WBOY
WBOYOriginal
2023-05-23 09:59:07558browse

In PHP, array is a very commonly used data type. I believe that many PHP developers will use arrays to store, process and traverse data. In actual development, sometimes we need to convert a multi-dimensional array into a one-dimensional array, and the key names need to be preserved. This kind of operation is quite common in actual development. This article will introduce how to use PHP to convert a two-dimensional array into a one-dimensional array and preserve the key names.

1. What is a PHP array?

Before we start to introduce how to convert a two-dimensional array into a one-dimensional array, we need to understand what an array is in PHP. In PHP, arrays can be used to store a series of values. These values ​​can be of any type, such as integers, floats, strings, objects, etc. Each value in the array is associated with a key, which can be a string, integer, etc. Compared with other languages, PHP's arrays are very flexible and can meet a variety of needs.

There are two ways to define arrays in PHP. One way is to use []" to define, for example:

$arr1 = [1, 2, 3];
$arr2 = ['name' => 'xiaoming', 'age' => 18];

The other way is to use array() to define, for example:

$arr3 = array(4, 5, 6);
$arr4 = array('name' => 'xiaohuang', 'age' => 20);

The structure of the array can be viewed through the var_dump function, for example :

var_dump($arr1);
var_dump($arr2);
var_dump($arr3);
var_dump($arr4);

The output results obtained are:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

array(2) {
  ["name"]=>
  string(8) "xiaoming"
  ["age"]=>
  int(18)
}

array(3) {
  [0]=>
  int(4)
  [1]=>
  int(5)
  [2]=>
  int(6)
}

array(2) {
  ["name"]=>
  string(8) "xiaohuang"
  ["age"]=>
  int(20)
}

As can be seen from the output results, $arr1 and $arr3 are arrays indexed by numbers, and $arr2 and $arr4 are associative arrays. .Next we will introduce how to convert a two-dimensional array in an associative array into a one-dimensional array and retain the key names.

2. Convert a two-dimensional array to a one-dimensional array

We assume the following A two-dimensional array:

$students = array(
    array('name' => 'xiaoming', 'age' => 18, 'sex' => 'male'),
    array('name' => 'xiaohong', 'age' => 19, 'sex' => 'female'),
    array('name' => 'xiaozhang', 'age' => 20, 'sex' => 'male')
);

This two-dimensional array contains three elements, each element is a student's information. Each student's information includes name (name), age (age) and gender ( sex). Now we need to convert this two-dimensional array into a one-dimensional array.

You can use the foreach statement to implement array traversal, for example:

$newArr = array();
foreach($students as $student) {
    foreach($student as $key => $value) {
        $newArr[$key][] = $value;
    }
}

In the above code, the first foreach loop Traverse each element in the $students array, that is, each student's information. The second foreach loop traverses the key-value pairs in each student's information, that is, the student's name, age, and gender. In each traversal , add the traversed key-value pairs to a new one-dimensional array. The structure of the finally obtained $newArr array is as follows:

array(3) {
  ["name"]=>
  array(3) {
    [0]=>
    string(8) "xiaoming"
    [1]=>
    string(8) "xiaohong"
    [2]=>
    string(9) "xiaozhang"
  }
  ["age"]=>
  array(3) {
    [0]=>
    int(18)
    [1]=>
    int(19)
    [2]=>
    int(20)
  }
  ["sex"]=>
  array(3) {
    [0]=>
    string(4) "male"
    [1]=>
    string(6) "female"
    [2]=>
    string(4) "male"
  }
}

As you can see, each key-value pair in the $newArr array is still retained The key names in the original two-dimensional array are removed. In this way, in subsequent processing, if you need to operate based on a certain key name, you can do it easily.

3. Preserve the meaning of the key name

Why should we retain the key name? The key name is used to identify a certain value. The advantage of retaining the key name is that you can use the key name to directly access a certain value without looping through to find the required value. In addition, if you retain the key name, you can be more flexible in data processing. You can add, delete, modify, search, etc. as needed.

For example, if we need to search in the above $newArr array For the gender of students aged 18 years old, the code can be written as:

echo $newArr['sex'][array_search(18, $newArr['age'])];

As can be seen from the above code, since the key name is retained, we can directly use $newArr['age'] to find the student's age information , and use the array_search function to find the index value with an age of 18, and then use $newArr['sex'] to find the gender information of the student. This query method is more efficient than using a loop to find.

4. Summary

This article briefly introduces how to use PHP to convert a two-dimensional array into a one-dimensional array and retain the key names. In actual development, retaining the key names can make data processing more convenient, and the query speed is also improved. More efficient. When processing data, we should pay attention to using the key names in the array to perform operations, so that the readability, maintainability, and scalability of the code will be better.

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