Maison >développement back-end >tutoriel php >Explication détaillée des cas d'utilisation de la fonction de tri de tableaux bidimensionnels array_orderby

Explication détaillée des cas d'utilisation de la fonction de tri de tableaux bidimensionnels array_orderby

php中世界最好的语言
php中世界最好的语言original
2018-05-17 15:02:081372parcourir

Cette fois, je vous apporte une explication détaillée du cas d'utilisation de la fonction de tri de tableau bidimensionnelle array_orderby Quelles sont les précautions à prendre pour utiliser la fonction de tri de tableau bidimensionnel array_orderby ? cas, jetons un coup d'oeil.

<?php
/**
I came up with an easy way to sort database-style results. This does what example 3 does, except it takes care of creating those intermediate arrays for you before passing control on to array_multisort(). 
*/
function array_orderby()
{
  $args = func_get_args();
  $data = array_shift($args);
  foreach ($args as $n => $field) {
    if (is_string($field)) {
      $tmp = array();
      foreach ($data as $key => $row)
        $tmp[$key] = $row[$field];
      $args[$n] = $tmp;
      }
  }
  $args[] = &$data;
  call_user_func_array(&#39;array_multisort&#39;, $args);
  return array_pop($args);
}
/*
The sorted array is now in the return value of the function instead of being passed by reference.
*/
$data[] = array(&#39;volume&#39; => 67, &#39;edition&#39; => 2);
$data[] = array(&#39;volume&#39; => 86, &#39;edition&#39; => 1);
$data[] = array(&#39;volume&#39; => 85, &#39;edition&#39; => 6);
$data[] = array(&#39;volume&#39; => 98, &#39;edition&#39; => 2);
$data[] = array(&#39;volume&#39; => 86, &#39;edition&#39; => 6);
$data[] = array(&#39;volume&#39; => 67, &#39;edition&#39; => 7);
// Pass the array, followed by the column names and sort flags
$sorted = array_orderby($data, &#39;volume&#39;, SORT_DESC, &#39;edition&#39;, SORT_ASC);
print_r($sorted)
?>

Résultats d'exploitation :

Array
(
  [0] => Array
    (
      [volume] => 98
      [edition] => 2
    )
  [1] => Array
    (
      [volume] => 86
      [edition] => 1
    )
  [2] => Array
    (
      [volume] => 86
      [edition] => 6
    )
  [3] => Array
    (
      [volume] => 85
      [edition] => 6
    )
  [4] => Array
    (
      [volume] => 67
      [edition] => 2
    )
  [5] => Array
    (
      [volume] => 67
      [edition] => 7
    )
)

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le. php site chinois !

Lecture recommandée :

Analyse de cas d'opération de connexion à la base de données ThinkPHP

Explication détaillée des étapes de la connexion PDO du framework ThinkPHP à la base de données

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn