Home  >  Article  >  Backend Development  >  Detailed example of array multisort sorting principle in php

Detailed example of array multisort sorting principle in php

WBOY
WBOYOriginal
2016-07-25 08:52:16973browse
  1. $data[] = array('volume' => 67, 'edition' => 2);
  2. $data[] = array('volume' => 86, 'edition' => 1);
  3. $data[] = array('volume' => 85, 'edition' => 6);
  4. $data[] = array('volume' => 98, 'edition' => 2);
  5. $data[] = array('volume' => 86, 'edition' => 6);
  6. $data[] = array('volume' => 67, 'edition' => 7);
  7. ?>
Copy code

Example 2:

  1. $a = array(1,2,3);
  2. $b = array(3);
  3. // Arrange the data in descending order according to volume and in ascending order according to edition
  4. // $data is used as the last parameter, sorted by common keys
  5. array_multisort($a, $b, $data);//The number of arrays in one dimension is different
  6. var_dump( $data);
  7. ?>
Copy code

The above test code prompts that the number of arrays is inconsistent. Warning: array_multisort(): Array sizes are inconsistent in G:wwwtestindex.php on line15

Look at another example:

  1. $data[] = array('volume' => 67, 'edition' => 2);
  2. $data[] = array('volume' => 86 , 'edition' => 1);
  3. $data[] = array('volume' => 85, 'edition' => 6);
  4. $data[] = array('volume' => 98 , 'edition' => 2);
  5. $data[] = array('volume' => 86, 'edition' => 6);
  6. $data[] = array('volume' => 67 , 'edition' => 7, 3, 4,4);//The number of two dimensions is different
  7. ?>
Copy code

Code 2:

  1. $a = array(11,2,3,4,5,6);
  2. $b = array(3,3,3,3,3,3);
  3. / /From the results, we can see that the array (67,7,3,4,4) corresponding to 11 appears in the same order;
  4. // Arrange the data in descending order according to volume and in ascending order according to edition
  5. // Use $data as the last one Parameters, sorted by common keys
  6. array_multisort($a, $b, $data);
  7. var_dump( $a,$data);
  8. ?>
Copy code

From the above results we can know: Array parameters must have the same number of one dimensions; Then the corresponding position of each array (note that it is not the same key, but corresponds to the natural position, such as $a(1=>4), which corresponds to 4 of $b(99=>4), because their positions are all the first one, rather than the corresponding relationship of key (1,99)), the values ​​in the corresponding positions are like being worn on bamboo poles that are equal to each other. When one of the values ​​​​on them needs to be adjusted, it will lead to the same Other values ​​on the "bamboo pole" appear to move vertically.

Category:

$a $b $c 4=>7 8=>10 '999' => 0 9=>9 0=>1 999=>9 0=> 2 9=> 3 9999=>7

If you press $a to swap 7 and 9, it will also cause $b to swap 10 and 1, and $c to swap 0 and 9. So the relationship is like the three arrays above. Those of the same color are on the same "front". If one of them changes, everyone will change their positions together.

Let’s introduce these, I hope it will help everyone understand the usage of multisort array sorting.

>>> For more information, please view the complete list of php array sorting methods



Statement:
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