Heim php教程 php手册 php数组排序的各种方法总结

php数组排序的各种方法总结

May 25, 2016 pm 04:56 PM
php数组

在php中我们要对一维数组排序做起来很简单我们只要用到sort(),rsort()这样就完成了,如果要对多维数据排序的话php还没这类函数这个就需要我们自己来做了。

对于php数组排序在php中提供了很多的函数,下面我列出来,不全的大家可以补充。

sort() 函数用于对数组单元从低到高进行排序。
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
ksort() 函数用于对数组单元按照键名从低到高进行排序。
krsort() 函数用于对数组单元按照键名从高到低进行排序。

不过今天我们主要是不是讲php自带的数组排序函数主要是讲自定的排序


一、冒泡排序法
  说明:找到最大的数,排列到最后面,然后继续找
 
例:

 代码如下 复制代码
$arr = array(3,5,-1,0,2);
for($i=0;$i    for($j=0;$j        if($arr[$j]>$arr[$j+1]){
            $temp = $arr[$j];
            $arr[$j]=$arr[$j+1];
            $arr[$j+1]=$temp;
        }
    }
}

理解:
3,5,-1,0,2
    //从第一个数开始往后比较,如果比后面的数大则与后面的数调位置
    //第一次,3小于5,那么不变
    //第二次,5大于-1,那么变成
3,-1,5,0,2
    //第三次,5大于0
3,-1,0,5,2
    //第四次,5大于2
3,-1,0,2,5
    至此完成一次内循环,此时最后一个数完成排序,下次将不参与
3,-1,0,2,5第二次外循环开始    第一次:3大于-1
-1,3,0,2,5
    第二次:3大于0
-1,0,3,2,5
    第三次:3大于2
-1,0,2,3,5
    至此完成后面两位数的排序了,接下来类推
-1,0,2,3,5
二、选择排序法    说明:先假设第一个数就是最小的数,然后将后面的数依次与它比较,如果假设的数不是最小的数,就将它与后面的最小的数调换位置

 代码如下 复制代码
$arr=array(2,1,-1,3,0);
for($i=0;$i    $minval = $arr[$i];
    $minindex = $i;
    for($j=1+$i;$j        if($arr[$j]            $minval = $arr[$j];
            $minindex = $j;
        }
    }
    $temp = $arr[$i];
    $arr[$i] = $arr[$minindex];
    $arr[$minindex] = $temp;
}

理解:
2,1,-1,3,0
    //先假设第一个数2为最小值,它后面的数依次与2做比较,寻找到最小的那个数
过程:
1小于2,那么minval=1
-1小于1,那么minval=-1
3大于-1,不变
0大于-1,不变
那么现在就找到了该数组中最小的数了为-1
将-1与2调换位置就完成第一个数的排序了
那么现在数组变成
-1,1,2,3,0
现在第一个数-1已经为有序,所以不参与比较了,往后面继续
现在假设minval=1
2大于1,不变
3大于1,不变
0小于1,那么minval=0
现在一次循环完成,调换0与1的位置完成第二个数的排序
那么现在数组变成
-1,0,2,3,1
//后面的推法与上面相同。。。
 
三、插入排序法说明:先假设一个数组中的第一个数为单独的有序数组,再将后面的一个数与它【这里随它I的增长,就变成它们了】做比较,如果后面的数比假设的数还小,则将小的那个数后移,最后将那个数移到最前面

 代码如下 复制代码
$arr=array(2,1,-1,3,0);
for($i=1;$i    $insertval=$arr[$i];
    $insertindex = $i-1;
    while($insertindex>=0 && $insertval        $arr[$insertindex+1]=$arr[$insertindex];
        $insertindex--;
    }
    $temp = $arr[$i];
    $arr[$insertindex+1]=$insertval;
}

理解:
2,1,-1,3,0
    //第一次,先保存待插入的数1为insertval,再拿 insertval 与2比较,1小于2,所以把2后移,变成如下的图
2,2,-1,3,0
    //此时2前面没有数字了,insertindex=0,所以比较完成,那么将insertval插入到寻找到的这个位置。变成如下图
1,2,-1,3,0
    //此时,1,2变成有序数组
    //第二次,先保存待插入的数-1为insertval,再拿insertval与2做比较,-1小于2,所以把2后移,变成如下图
1,2,2,3,0
    //此时,再拿insertval与1做比较,-1小于1,那么把-1后移,变成如下图(这就是一个拿待插入数与前面的有序数组比较的过程)
1,1,2,3,0
    //此时,insertindex到头了,所以将insertval插入该位置
-1,1,2,3,0
    //后面推法如上


二维数组排序函数,可以实现类似 MySQL 的 ORDER BY 效果,当数组不是从数据库取得时会有特殊应用。

 

 代码如下 复制代码

// 说明:PHP中二维数组的排序方法

 
/**
 * @package     BugFree
 * @version     $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $
 *
 *
 * Sort an two-dimension array by some level two items use array_multisort() function.
 *
 * sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)
 * @author                      Chunsheng Wang
 * @param  array   $ArrayData   the array to sort.
 * @param  string  $KeyName1    the first item to sort by.
 * @param  string  $SortOrder1  the order to sort by("SORT_ASC"|"SORT_DESC")
 * @param  string  $SortType1   the sort type("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")
 * @return array                sorted array.
 */
function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
{
    if(!is_array($ArrayData))
    {
        return $ArrayData;
    }
 
    // Get args number.
    $ArgCount = func_num_args();
 
    // Get keys to sort by and put them to SortRule array.
    for($I = 1;$I     {
        $Arg = func_get_arg($I);
        if(!eregi("SORT",$Arg))
        {
            $KeyNameList[] = $Arg;
            $SortRule[]    = '$'.$Arg;
        }
        else
        {
            $SortRule[]    = $Arg;
        }
    }
 
    // Get the values according to the keys and put them to array.
    foreach($ArrayData AS $Key => $Info)
    {
        foreach($KeyNameList AS $KeyName)
        {
            ${$KeyName}[$Key] = $Info[$KeyName];
        }
    }
 
    // Create the eval string and eval it.
    $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
    eval ($EvalString);
    return $ArrayData;
}
 
//################# 示例 #################
$arr = array(
    array(
        'name'      =>   '学习',
        'size'      =>   '1235',
        'type'      =>   'jpe',
        'time'      =>   '1921-11-13',
        'class'     =>   'dd',
    ),
    array(
        'name'      =>   '中国功夫',
        'size'      =>   '153',
        'type'      =>   'jpe',
        'time'      =>   '2005-11-13',
        'class'     =>   'jj',
    ),
    array(
        'name'      =>   '编程',
        'size'      =>   '35',
        'type'      =>   'gif',
        'time'      =>   '1997-11-13',
        'class'     =>   'dd',
    ),
    array(
        'name'      =>   '中国功夫',
        'size'      =>   '65',
        'type'      =>   'jpe',
        'time'      =>   '1925-02-13',
        'class'     =>   'yy',
    ),
    array(
        'name'      =>   '中国功夫',
        'size'      =>   '5',
        'type'      =>   'icon',
        'time'      =>   '1967-12-13',
        'class'     =>   'rr',
    ),
);
 
print_r($arr);
 
//注意:按照数字方式排序时 153 比 65 小
$temp = sysSortArray($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING");
 
print_r($temp);
 
?>

至于一维数组排序我们用php自带的函数就可以完全实现数据排序了,所以我们讲到的都是相对用自定函数无法完成我们需求的做法了。



本文地址:

转载随意,但请附上文章地址:-)

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie PHP-Arrays zum Generieren und Anzeigen von Diagrammen und statistischen Grafiken So verwenden Sie PHP-Arrays zum Generieren und Anzeigen von Diagrammen und statistischen Grafiken Jul 15, 2023 pm 12:24 PM

So verwenden Sie PHP-Arrays zum Generieren und Anzeigen von Diagrammen und statistischen Grafiken. PHP ist eine weit verbreitete serverseitige Skriptsprache mit leistungsstarken Datenverarbeitungs- und Grafikgenerierungsfunktionen. In der Webentwicklung müssen wir häufig Diagramme und statistische Diagramme von Daten anzeigen. Mithilfe von PHP-Arrays können wir diese Funktionen problemlos implementieren. In diesem Artikel wird die Verwendung von PHP-Arrays zum Generieren und Anzeigen von Diagrammen und statistischen Grafiken vorgestellt und relevante Codebeispiele bereitgestellt. Einführung der notwendigen Bibliotheksdateien und Stylesheets Bevor wir beginnen, müssen wir einige notwendige Bibliotheksdateien in die PHP-Datei einführen

So verwenden Sie PHP-Arrays zum Generieren dynamischer Diashows und Bildanzeigen So verwenden Sie PHP-Arrays zum Generieren dynamischer Diashows und Bildanzeigen Jul 15, 2023 pm 01:17 PM

So verwenden Sie PHP-Arrays zum Generieren dynamischer Diashows und Bildanzeigen. Diashows und Bildanzeigen sind gängige Funktionen im Webdesign und werden häufig in Szenarien wie Karussells und Galerieanzeigen verwendet. Als beliebte serverseitige Skriptsprache verfügt PHP über die Fähigkeit, Daten zu verarbeiten und dynamische HTML-Seiten zu generieren, und eignet sich sehr gut für die Erstellung dynamischer Diashows und Bildanzeigen. In diesem Artikel wird die Verwendung von PHP-Arrays zum Generieren dynamischer Diashows und Bildanzeigen vorgestellt und entsprechende Codebeispiele gegeben. Bilddaten vorbereiten Zuerst müssen wir einen Satz Bildpfaddaten vorbereiten

So verwenden Sie PHP-Arrays zur Implementierung von Benutzeranmeldungs- und Berechtigungsverwaltungsfunktionen So verwenden Sie PHP-Arrays zur Implementierung von Benutzeranmeldungs- und Berechtigungsverwaltungsfunktionen Jul 15, 2023 pm 08:55 PM

Verwendung von PHP-Arrays zur Implementierung von Benutzeranmeldungs- und Berechtigungsverwaltungsfunktionen Bei der Entwicklung einer Website sind Benutzeranmeldung und Berechtigungsverwaltung eine der sehr wichtigen Funktionen. Durch die Benutzeranmeldung können wir Benutzer authentifizieren und die Sicherheit der Website schützen. Durch das Berechtigungsmanagement können die Bedienberechtigungen der Benutzer auf der Website gesteuert werden, um sicherzustellen, dass Benutzer nur auf die Funktionen zugreifen können, für die sie berechtigt sind. In diesem Artikel stellen wir vor, wie Sie PHP-Arrays verwenden, um Benutzeranmeldungs- und Berechtigungsverwaltungsfunktionen zu implementieren. Wir werden diesen Prozess anhand eines einfachen Beispiels demonstrieren. Zuerst müssen wir erstellen

So bestimmen Sie, wie viele Arrays es in PHP gibt So bestimmen Sie, wie viele Arrays es in PHP gibt Aug 04, 2023 pm 05:40 PM

Es gibt mehrere Möglichkeiten, ein Array in PHP zu ermitteln: 1. Verwenden Sie die Funktion count(), die für alle Arten von Arrays geeignet ist. Es ist jedoch zu beachten, dass die Funktion count() 0 zurückgibt, wenn der übergebene Parameter kein Array ist. Verwenden Sie die Funktion sizeof(), die eher zur Aufrechterhaltung der Kompatibilität mit anderen Programmiersprachen verwendet wird Funktionen: Durch die Verwendung einer Schleife zum Durchlaufen des Arrays wird der Zähler bei jedem Durchlaufen um 1 erhöht und schließlich die Länge des Arrays ermittelt. Benutzerdefinierte Funktionen können entsprechend den tatsächlichen Anforderungen geändert und erweitert werden, wodurch sie flexibler werden.

Eine Untersuchung der Leistungsoptimierungstechniken für PHP-Arrays Eine Untersuchung der Leistungsoptimierungstechniken für PHP-Arrays Mar 13, 2024 pm 03:03 PM

PHP-Array ist eine sehr häufige Datenstruktur, die häufig während des Entwicklungsprozesses verwendet wird. Mit zunehmender Datenmenge kann die Array-Leistung jedoch zu einem Problem werden. In diesem Artikel werden einige Techniken zur Leistungsoptimierung für PHP-Arrays untersucht und spezifische Codebeispiele bereitgestellt. 1. Verwenden Sie geeignete Datenstrukturen. In PHP gibt es zusätzlich zu gewöhnlichen Arrays einige andere Datenstrukturen wie SplFixedArray, SplDoublyLinkedList usw., die in bestimmten Situationen möglicherweise eine bessere Leistung als gewöhnliche Arrays erbringen.

Was sind PHP-Array-Schlüssel-Wert-Paare? Was sind PHP-Array-Schlüssel-Wert-Paare? Aug 03, 2023 pm 02:20 PM

Das Schlüssel-Wert-Paar eines PHP-Arrays ist eine Datenstruktur, die aus einem Schlüssel und einem entsprechenden Wert besteht. Der Schlüssel ist die Kennung des Array-Elements und der Wert sind die mit dem Schlüssel verknüpften Daten. Es ermöglicht uns, Daten mithilfe von Schlüsseln als Bezeichner zu speichern und darauf zuzugreifen. Durch die Verwendung von Schlüssel-Wert-Paaren können wir Elemente im Array einfacher bedienen und verwalten, was die Programmentwicklung flexibler und effizienter macht.

Welche Funktionen gibt es für die Mittelung von Arrays in PHP? Welche Funktionen gibt es für die Mittelung von Arrays in PHP? Jul 17, 2023 pm 04:03 PM

Zu den PHP-Array-Mittelungsfunktionen gehören: 1. array_sum(), mit dem die Summe aller Werte im Array berechnet wird. Um den Durchschnitt zu berechnen, können Sie alle Werte im Array addieren und dann durch dividieren die Anzahl der Array-Elemente; 2, array_reduce(), wird verwendet, um das Array zu iterieren und jeden Wert mit einem Anfangswert zu berechnen. 3. array_mean(), wird verwendet, um den Durchschnitt des Arrays zurückzugeben, zuerst die Summe des Arrays zu berechnen und Berechnen Sie die Anzahl der Array-Elemente und dividieren Sie dann die Summe durch die Anzahl der Array-Elemente, um den Durchschnitt zu erhalten.

Was ist die Funktion in PHP, um festzustellen, ob ein Array leer ist? Was ist die Funktion in PHP, um festzustellen, ob ein Array leer ist? Aug 03, 2023 pm 05:15 PM

Die Funktionen, die PHP verwendet, um festzustellen, ob ein Array leer ist, sind die Funktion „empty()“ und die Funktion „count()“. 1. Die Funktion „empty()“ wird verwendet, um zu bestimmen, ob eine Variable leer ist, einschließlich der Bestimmung, ob ein Array leer ist. Ihre Syntax ist „empty($variable)“ 2. Die Funktion „count()“ wird verwendet, um zu bestimmen, ob eine Variable leer ist count arrays Die Anzahl der Elemente, die Syntax ist „count($array)“.

See all articles