w3resource

PHP Array Exercises : Sort a specified array by the day and username

PHP Array: Exercise-22 with Solution

Write a PHP script to sort the following array by the day (page_id) and username.

Sample Solution:

PHP Code:

<?php
// Initialize a multidimensional array $arra with transaction_id and user_name values
$arra[0]["transaction_id"] = "2025731470";
$arra[1]["transaction_id"] = "2025731450";
$arra[2]["transaction_id"] = "1025731456";
$arra[3]["transaction_id"] = "1025731460";
$arra[0]["user_name"] = "Sana";
$arra[1]["user_name"] = "Illiya";
$arra[2]["user_name"] = "Robin";
$arra[3]["user_name"] = "Samantha";

// Define a function convert_timestamp to convert timestamp to date
function convert_timestamp($timestamp){
    $limit = date("U");
    $limiting = $timestamp - $limit;
    return date("Ymd", mktime(0, 0, $limiting));
}

// Define a comparison function cmp for sorting based on transaction_id and user_name
function cmp($a, $b) {
    $l = convert_timestamp($a["transaction_id"]);
    $k = convert_timestamp($b["transaction_id"]);

    if ($k == $l) {
        return strcmp($a["user_name"], $b["user_name"]);
    } else {
        return strcmp($k, $l);
    }
}

// Use usort to sort the array $arra using the comparison function cmp
usort($arra, "cmp");

// Print the sorted information
while (list ($key, $value) = each($arra)) {
    echo "\$arra[$key]: ";
    echo $value["transaction_id"];
    echo " user_name: ";
    echo $value["user_name"];
    echo "\n";
}
?>

Output:

$arra[0]: 2025731450 user_name: Illiya                      
$arra[1]: 2025731470 user_name: Sana                        
$arra[2]: 1025731456 user_name: Robin                       
$arra[3]: 1025731460 user_name: Samantha

Flowchart:

Flowchart: PHP - Sort the following array by the day and user name

PHP Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a PHP function to sort subnets.
Next: Write a PHP program to sort a multi-dimensional array set by a specific key.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.