Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function list_cmp($a, $b) {
- global $order;
- foreach ($order as $key => $value) {
- if ($a == $value) {
- return 0;
- }
- if ($b == $value) {
- return 1;
- }
- }
- }
- $order[0] = 1;
- $order[1] = 3;
- $order[2] = 4;
- $order[3] = 2;
- $array[0] = 2;
- $array[1] = 1;
- $array[2] = 3;
- $array[3] = 4;
- $array[4] = 2;
- $array[5] = 1;
- $array[6] = 2;
- usort($array, "list_cmp");
- ?>
- /*
- What is the logic / thinking / explanation of:
- 1) Comparing a value of $a to a value of the $order array and if they are the same doing nothing (return 0)
- 2) If $a is not equal to a value of the $order array, comparing $b to a value of the $order array, and if $b equals a value of the $order array, returning 1, which moves the (current) $b variable towards the end of the array (higher index)?
- The goal is to sort the $array based on the order of the $order array, but what is the explanation of achieving this with how this code is set up? I am not getting this yet…
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement