w3resource

PHP Array Exercises : Sort an array according to another array as a priority list

PHP Array: Exercise-20 with Solution

Write a PHP function to sort an array according to another array acting as a priority list.

Sample Solution:

PHP Code:

<?php
// Define a function named 'list_cmp' that compares two values based on their order in the global array '$order'
function list_cmp($a, $b)
{
    global $order;

    // Iterate through the '$order' array
    foreach ($order as $key => $value)
    {
        // If $a matches a value in '$order', return 0 to indicate equality
        if ($a == $value)
        {
            return 0;
            break;
        }

        // If $b matches a value in '$order', return 1 to indicate inequality
        if ($b == $value)
        {
            return 1;
            break;
        }
    }
}

// Define an array '$order' specifying the desired order of values
$order[0] = 1;
$order[1] = 3;
$order[2] = 4;
$order[3] = 2;

// Define an array '$array' with unsorted values
$array[0] = 2;
$array[1] = 1;
$array[2] = 3;
$array[3] = 4;
$array[4] = 2;
$array[5] = 1;
$array[6] = 2;

// Use 'usort' function to sort '$array' based on the order specified in the 'list_cmp' function
usort($array, "list_cmp");

// Print the sorted array
print_r($array);
?>

Output:

Array                                                       
(                                                           
    [0] => 1                                                
    [1] => 1                                                
    [2] => 3                                                
    [3] => 4                                                
    [4] => 2                                                
    [5] => 2                                                
    [6] => 2                                                
)     

Flowchart:

Flowchart: PHP - Sort an array according to another array as a priority list

PHP Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a PHP script to print "second" and Red from the specified array.
Next: Write a PHP function to sort subnets.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/php-exercises/php-array-exercise-20.php