PHP array sorting: an in-depth exploration from single dimension to multi-dimensional

WBOY
Release: 2024-04-29 16:00:02
Original
299 people have browsed it

PHP provides a wealth of array sorting functions, including sort(), rsort(), asort(), and arsort() for single-dimensional array sorting; for multi-dimensional array sorting, you can use the array_multisort() custom function. Sort in ascending or descending order by specifying multiple columns.

PHP array sorting: an in-depth exploration from single dimension to multi-dimensional

PHP Array Sorting: In-depth Exploration from Single Dimension to Multi-Dimension

Introduction

Array sorting is crucial in programming and can be used to organize and filter data. PHP provides several functions to sort arrays, including sort(), rsort(), asort(), arsort(), natsort(), natcasesort() etc.

Single-dimensional array sorting

Sorting a single-dimensional array is very simple, you can use the following function:

  • sort( ): Sort array elements in ascending order.
  • rsort(): Sort array elements in descending order.
  • asort(): Sort in ascending order by key.
  • arsort(): Sort in descending order by key.

Practical case: Sorting single-dimensional arrays of products in ascending order by name

<?php
$products = array(
    "Apple" => "iPhone",
    "Samsung" => "Galaxy",
    "Google" => "Pixel",
);

asort($products);

print_r($products);
Copy after login

Output:

Array
(
    [Apple] => iPhone
    [Google] => Pixel
    [Samsung] => Galaxy
)
Copy after login

Multi-dimensional array sorting

Sometimes, we need to sort multi-dimensional arrays. There is no out-of-the-box function in PHP to do this, but we can work around it with a custom function:

function array_multisort($array, $columns) {
    $temp = [];
    foreach($array as $k => $v) {
        $temp[$k] = [];
        foreach($columns as $key) {
            $temp[$k][$key] = $v[$key];
        }
    }
    array_multisort($temp, SORT_ASC);
    foreach($temp as $k => $v) {
        foreach($columns as $key) {
            $array[$k][$key] = $v[$key];
        }
    }
    return $array;
}
Copy after login

Practical example: Sorting multi-dimensional array by product name and price

<?php
$products = array(
    array(
        "name" => "iPhone",
        "price" => 1000,
    ),
    array(
        "name" => "Galaxy",
        "price" => 800,
    ),
    array(
        "name" => "Pixel",
        "price" => 900,
    ),
);

array_multisort($products, ['name', 'price']);

print_r($products);
Copy after login

Output:

Array
(
    [0] => Array
        (
            [name] => Galaxy
            [price] => 800
        )

    [1] => Array
        (
            [name] => iPhone
            [price] => 1000
        )

    [2] => Array
        (
            [name] => Pixel
            [price] => 900
        )
)
Copy after login

The above is the detailed content of PHP array sorting: an in-depth exploration from single dimension to multi-dimensional. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!