Maison développement back-end tutoriel php PHP数组排序算法小结

PHP数组排序算法小结

Jun 20, 2016 pm 01:05 PM
php数组

PHP中对数组的元素进行排序,这个是很经常用到的,之前的项目中也有,而且对于几种排序我们都是用的是asort  arsort 等PHP原生函数,没有自己去实现,所以就对一下的几个函数进行总结,这个会不断的进行补充,自己也可以好好的复习和总结。

/*
 * 插入排序(一维数组)
 * 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当的位置,使数列依然有序;直到待排序的数据元素全部插入完成为止。
 */
function insertSort($arr){
    if(!is_array($arr) ||count($arr)==0){
        return $arr;
    }
    $count =count($arr);
    for($i=1;$i<$count;$i++){
        if(isset($arr[$i])){
       $tmp =$arr[$i];//获取后一个元素的值
       $j =$i - 1;//获取前面的下标
       while($arr[$j] >$tmp){//如果前面一个比后面一个大, 这里是从小到大
           $arr[$j+1] =$arr[$j];//把小的元素和前面的对换,直到移动到合适的位置,在移动下一个
           $arr[$j] =$tmp;
           $j--;
        }
        }
    }
    return $arr;
}
/*
 * 选择排序(一维数组)
 * 每一趟从待排序的数据元素中选出最小(最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
 */
function selectSort($arr){
    if(!is_array($arr) ||count($arr) == 0)
    {
        return $arr;
    }
    $count =count($arr);
    for($i=0;$i<$count;$i++){
        $k =$i;
        for($j=$i+1;$j<$count;$j++){
      if ($arr[$k] >$arr[$j])
        $k =$j;//找出最小的
       if ($k !=$i){
           $tmp =$arr[$i];
           $arr[$i] =$arr[$k];
           $arr[$k] =$tmp;
          }
       }
    }
    return $arr;
}
 
/*  
 * 冒泡排序(一维数组)
 * 两两比较待排序数据元素的大小,发现两个数据元素的次序相反即进行交换,直到没有反序的数据元素为止
 */
function bubbleSort($array){
    $count =count($array);
    if ($count <= 0) {
        return false;
    }
    for($i=0;$i<$count;$i++){
        for($j=$count-1;$j>$i;$j--){
           if ($array[$j] <$array[$j-1]){//比较找到的数进行交换
            $tmp =$array[$j];
            $array[$j] =$array[$j-1];
            $array[$j-1] =$tmp;
           }
        }
    }
    return $array;
}
/*
 * 快速排序(一维数组)
 *
 */
function quickSort($array){
    if (count($array) <= 1){
        return $array;
    }
    $key =$array[0];
    $left_arr =array();
    $right_arr =array();
    for ($i=1;$i<count($array);$i++){
      if ($array[$i] <=$key){
           $left_arr[] =$array[$i];
      }else{
         $right_arr[] =$array[$i];
        }
    }
    $left_arr = quickSort($left_arr);
    $right_arr = quickSort($right_arr);
    return array_merge($left_arr,array($key),$right_arr);
}
 
/**
  * 按照元素的值进行排序
  * strOrder 为排列的顺序 asc 升序  desc 降序
  */
function sortByVal($arr,$strOrder=&#39;asc&#39;)
{
    if(!is_array($arr) ||count($arr)==0)
    {
        return $arr;
    }
 
    $arrReturn =array();
    foreach($arr as $key=>$val)
    {
        $arrKey[] =$key;
        $arrVal[] =$val;
    }
 
    $count =count($arrVal);
    if($count)
    {
        //创建key的顺序数组
        for($key=0;$key<$count;$key++)
        {
            $arrKeyMap[$key] =$key; 
        }
        //对值进行排序
        for($i=0;$i<$count;$i++)
        {  
             
            for($j =$count-1;$j>$i;$j--)
            {
                //<从小到大排列 升降在这修改
                $bol =$strOrder ==&#39;asc&#39; ?$arrVal[$j]<$arrVal[$j-1] :$arrVal[$j]>$arrVal[$j-1];
                if($bol){
                    $tmp =$arrVal[$j];
                    $arrVal[$j] =$arrVal[$j-1];
                    $arrVal[$j-1] =$tmp;
                    //值的冒泡排序,引起key的数组的交互   
                    $keytmp =$arrKeyMap[$j];
                    $arrKeyMap[$j] =$arrKeyMap[$j-1];
                    $arrKeyMap[$j-1] =$keytmp;
                }
            }
        }
        if(count($arrKeyMap))
        {
            foreach ($arrKeyMap as $val)
            {
                    $arrReturn[] =$arrKey[$val];
            }
        }
        return $arrReturn;
    }
}
 
 
/**
  * 使用原生的函数进行数组按照值进行排列
  */
function arraySortByVal($arr,$keys,$type=&#39;asc&#39;){
    $keysvalue =$new_array =array();
    foreach ($arr as $k=>$v){
        $keysvalue[$k] =$v[$keys];
    }
    if($type ==&#39;asc&#39;){
        asort($keysvalue);
    }else{
        arsort($keysvalue);
    }
    reset($keysvalue);
    foreach ($keysvalue as $k=>$v){
        $new_array[$k] =$arr[$k];
    }
    return $new_array;
Copier après la connexion

 

对于下面的2个对于array的值进行排序的方法一个是自己实现的一个是使用了原生的PHP函数的,其实排序对于少量数据一般就单页的数据量的数据还是可以的,如果涉及到大量的数据的排序,建议可以整合到MYSQL的基础类中来进行。

 


Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser des tableaux PHP pour générer et afficher des graphiques et des graphiques statistiques Comment utiliser des tableaux PHP pour générer et afficher des graphiques et des graphiques statistiques Jul 15, 2023 pm 12:24 PM

Comment utiliser des tableaux PHP pour générer et afficher des graphiques et des graphiques statistiques. PHP est un langage de script côté serveur largement utilisé doté de puissantes capacités de traitement de données et de génération de graphiques. Dans le développement Web, nous avons souvent besoin d'afficher des graphiques et des graphiques statistiques de données grâce aux tableaux PHP, nous pouvons facilement implémenter ces fonctions. Cet article expliquera comment utiliser les tableaux PHP pour générer et afficher des graphiques et des graphiques statistiques, et fournira des exemples de code pertinents. Présentation des fichiers de bibliothèque et des feuilles de style nécessaires Avant de commencer, nous devons introduire certains fichiers de bibliothèque nécessaires dans le fichier PHP

Comment utiliser des tableaux PHP pour générer des diaporamas dynamiques et des affichages d'images Comment utiliser des tableaux PHP pour générer des diaporamas dynamiques et des affichages d'images Jul 15, 2023 pm 01:17 PM

Comment utiliser des tableaux PHP pour générer des diaporamas et des affichages d'images dynamiques Les diaporamas et les affichages d'images sont des fonctions courantes dans la conception Web et sont souvent utilisés dans des scénarios tels que les carrousels et les affichages de galeries. En tant que langage de script côté serveur populaire, PHP a la capacité de traiter des données et de générer des pages HTML dynamiques, et est très approprié pour générer des diaporamas et des affichages d'images dynamiques. Cet article explique comment utiliser les tableaux PHP pour générer des diaporamas dynamiques et des affichages d'images, et donne des exemples de code correspondants. Préparer les données d'image Tout d'abord, nous devons préparer un ensemble de données de chemin d'image

Quelles sont les fonctions de moyenne des tableaux en php ? Quelles sont les fonctions de moyenne des tableaux en php ? Jul 17, 2023 pm 04:03 PM

Les fonctions de moyenne de tableau PHP incluent : 1. array_sum(), qui est utilisé pour calculer la somme de toutes les valeurs du tableau. Afin de calculer la moyenne, vous pouvez additionner toutes les valeurs du tableau, puis diviser par. le nombre d'éléments du tableau ; 2 , array_reduce(), utilisé pour parcourir le tableau et calculer chaque valeur avec une valeur initiale ; 3. array_mean(), utilisé pour renvoyer la moyenne du tableau, calculer d'abord la somme du tableau, et calculez le nombre d'éléments du tableau, puis divisez la somme par le nombre d'éléments du tableau pour obtenir la moyenne.

Comment utiliser les tableaux PHP pour implémenter les fonctions de connexion des utilisateurs et de gestion des autorisations Comment utiliser les tableaux PHP pour implémenter les fonctions de connexion des utilisateurs et de gestion des autorisations Jul 15, 2023 pm 08:55 PM

Comment utiliser les tableaux PHP pour implémenter les fonctions de connexion des utilisateurs et de gestion des autorisations Lors du développement d'un site Web, la connexion des utilisateurs et la gestion des autorisations sont l'une des fonctions très importantes. La connexion utilisateur nous permet d'authentifier les utilisateurs et de protéger la sécurité du site Web. La gestion des autorisations peut contrôler les autorisations de fonctionnement des utilisateurs sur le site Web afin de garantir que les utilisateurs ne peuvent accéder qu'aux fonctions pour lesquelles ils sont autorisés. Dans cet article, nous présenterons comment utiliser les tableaux PHP pour implémenter les fonctions de connexion des utilisateurs et de gestion des autorisations. Nous utiliserons un exemple simple pour démontrer ce processus. Nous devons d'abord créer

Que sont les paires clé-valeur du tableau php ? Que sont les paires clé-valeur du tableau php ? Aug 03, 2023 pm 02:20 PM

La paire clé-valeur de tableau PHP est une structure de données composée d'une clé et d'une valeur correspondante. La clé est l'identifiant de l'élément du tableau et la valeur est les données associées à la clé. Il nous permet de stocker et d'accéder aux données en utilisant des clés comme identifiants. En utilisant des paires clé-valeur, nous pouvons utiliser et gérer plus facilement les éléments du tableau, rendant le développement de programmes plus flexible et plus efficace.

Comment déterminer le nombre de tableaux en php Comment déterminer le nombre de tableaux en php Aug 04, 2023 pm 05:40 PM

Il existe plusieurs manières de juger un tableau en PHP : 1. Utilisez la fonction count(), qui convient à tous les types de tableaux. Cependant, il convient de noter que si le paramètre transmis n'est pas un tableau, la fonction count() retournera 0 ; 2. Utilisez la fonction sizeof(), qui est plus utilisée pour maintenir la compatibilité avec d'autres langages de programmation ; fonctions, En utilisant une boucle pour parcourir le tableau, à chaque fois qu'il est parcouru, le compteur est incrémenté de 1, et enfin la longueur du tableau est obtenue. Les fonctions personnalisées peuvent être modifiées et étendues en fonction des besoins réels, ce qui les rend plus flexibles.

Une exploration des techniques d'optimisation des performances pour les tableaux PHP Une exploration des techniques d'optimisation des performances pour les tableaux PHP Mar 13, 2024 pm 03:03 PM

Le tableau PHP est une structure de données très courante qui est souvent utilisée pendant le processus de développement. Cependant, à mesure que la quantité de données augmente, les performances de la baie peuvent devenir problématiques. Cet article explorera certaines techniques d'optimisation des performances pour les tableaux PHP et fournira des exemples de code spécifiques. 1. Utilisez des structures de données appropriées En PHP, en plus des tableaux ordinaires, il existe d'autres structures de données, telles que SplFixedArray, SplDoublyLinkedList, etc., qui peuvent fonctionner mieux que les tableaux ordinaires dans certaines situations.

Comment convertir un tableau php bidimensionnel en un tableau unidimensionnel Comment convertir un tableau php bidimensionnel en un tableau unidimensionnel Aug 03, 2023 am 11:14 AM

Comment convertir un tableau php de deux dimensions en un tableau unidimensionnel : 1. Utilisez le parcours en boucle pour parcourir le tableau bidimensionnel et ajoutez chaque élément au tableau unidimensionnel ; 2. Utilisez la fonction "array_merge" pour fusionner plusieurs éléments ; tableaux en Un tableau, passez le tableau bidimensionnel en paramètre à la fonction "array_merge" pour le convertir en un tableau unidimensionnel ; 3. Grâce à la fonction "array_reduce", toutes les valeurs du tableau peuvent être traitées. via une fonction de rappel, et a finalement renvoyé un résultat.

See all articles