Home  >  Article  >  Backend Development  >  How to sort two-dimensional arrays in PHP array learning (2 methods)

How to sort two-dimensional arrays in PHP array learning (2 methods)

青灯夜游
青灯夜游Original
2021-08-23 19:45:598889browse

In the previous article "PHP In Array Learning: How to Intercept Element Fragments (Two Methods)", we introduced how to intercept arrays and return partial array element fragments Two methods. This time we continue the study of PHP arrays and talk about the method of sorting two-dimensional array elements. Friends who are interested can learn Learn more~

→Related recommendations: PHP array learning series summary (continuously updated~)

We learned about something before There are several sorting methods for dimensional arrays. You know that PHP has many built-in functions to implement descending sorting and ascending sorting of one-dimensional arrays. So do two-dimensional arrays also have built-in functions to implement sorting?

The answer is: Yes! PHP has a built-in array_multisort() function that can be used to sort two-dimensional arrays. Below we introduce to you two methods of sorting two-dimensional arrays using the array_multisort() function.

Method 1: foreach loop array_multisort() function

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
    // 取得列的列表
    foreach ($data as $key => $row)
    {
        $ID[$key]  = $row[&#39;id&#39;];
        $FirstName[$key] = $row[&#39;first_name&#39;];
				$LastName[$key] = $row[&#39;last_name&#39;];
    }

    array_multisort($ID, SORT_ASC, $data);

var_dump($data);
?>

Analyze the code:

  • Use foreach loop to sort the same field Put the data together and use var_dump($ID), var_dump($FirstName), var_dump($LastName) to try outputting each field data:

    How to sort two-dimensional arrays in PHP array learning (2 methods)

  • Use array_multisort($ID, SORT_ASC, $data)According to the "id# in the two-dimensional array $data ##"The fields in that column are sorted in ascending order.

So the output result is:

How to sort two-dimensional arrays in PHP array learning (2 methods)

And if you want to sort in descending order based on id, just set the second parameter of the function to

SORT_DESC That's it:

array_multisort($ID, SORT_DESC, $data);

Output result:

How to sort two-dimensional arrays in PHP array learning (2 methods)

If you want to sort based on last_name, just put the function first Just set the parameter to the $LastName array

array_multisort($LastName, SORT_DESC, $data);

Output result:

How to sort two-dimensional arrays in PHP array learning (2 methods)

Let’s take a look at the array_multisort() function:


array_multisort() function returns a sorted array. The user can input one or more arrays and the function will sort the first array, then the other arrays, and if two or more values ​​are the same, it will sort the next array. The syntax is as follows:

array_multisort(array1,sorting order,sorting type,array2,array3...)

How to sort two-dimensional arrays in PHP array learning (2 methods)

##Method 2: array_column() function array_multisort() function

In method 1, we use foreach loop to get data for the same field, which is a bit complicated. In fact, you can use the array_column() function to achieve this operation. The array_column() function can return the value of a single column in the input array.

<?php
$data = array(
  array(
    &#39;id&#39; => 5698,
    &#39;first_name&#39; => &#39;Bill&#39;,
    &#39;last_name&#39; => &#39;Gates&#39;,
  ),
  array(
    &#39;id&#39; => 3809,
    &#39;first_name&#39; => &#39;Mark&#39;,
    &#39;last_name&#39; => &#39;Zuckerberg&#39;,
  ),
  array(
    &#39;id&#39; => 4767,
    &#39;first_name&#39; => &#39;Steve&#39;,
    &#39;last_name&#39; => &#39;Aobs&#39;,
  )
);
//根据字段id对数组$data进行升序排列
$key = array_column($data,&#39;id&#39;);
array_multisort($key,SORT_ASC,$data);

var_dump($data);
?>

Output result:

How to sort two-dimensional arrays in PHP array learning (2 methods)If you want to sort by which field, use the

array_column($data,'id')

function Just replace the second parameter with that field (key value). For example, if you want to sort in descending order based on the field "first_name", you can:

$key = array_column($data,&#39;first_name&#39;);
array_multisort($key,SORT_DESC,$data);

Output result:

How to sort two-dimensional arrays in PHP array learning (2 methods)Let's take a look at array_column( )Function:

array_column() Returns the value of a single column in the input array. The syntax format is:

array_column(array,column_key,index_key);

How to sort two-dimensional arrays in PHP array learning (2 methods) Return value: Returns an array. The value of the array is the value of a single column in the input array.​

Okay, that’s all. If you want to know anything else, you can click this. → →

php video tutorial

Finally, I would like to recommend a free video tutorial on PHP arrays:

PHP function array array function video explanation

, come and learn!

The above is the detailed content of How to sort two-dimensional arrays in PHP array learning (2 methods). 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