PHP Array Exercises : Sort a specified array by the day and username
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:
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.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics