Heim  >  Artikel  >  Backend-Entwicklung  >  Sortiermethode für zweidimensionale Arrays in PHP

Sortiermethode für zweidimensionale Arrays in PHP

巴扎黑
巴扎黑Original
2016-11-23 13:59:331081Durchsuche

/**
* @package     BugFree
* @version     $Id: FunctionsMain.inc.php,v 1.32 24.09.2005 11:38:37 wwccss Exp $
*
*
* Sortieren Ein zweidimensionales Array mit einigen Elementen der zweiten Ebene verwenden die Funktion array_multisort().
*
* sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)
* @author                      Chunsheng Wang
* @param  array   $ArrayData   das zu sortierende Array.
* @param  string  $KeyName1    das erste Element, nach dem sortiert werden soll.
* @param  string $SortOrder1  die Reihenfolge, nach der sortiert werden soll("SORT_ASC"|"SORT_DESC")
* @param  string  $SortType1   der Sortiertyp("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")
* @return array                sortiertes Array .
*/
function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
{
    if(!is_array($ArrayData))
    {
        return $ArrayData;
    }
 
    // Argumentnummer abrufen.
    $ArgCount = func_num_args();

    // Schlüssel zum Sortieren abrufen und in das SortRule-Array einfügen.
    for($I = 1;$I < $ArgCount;$I )
    {
        $Arg = func_get_arg($ I);
        if(!eregi("SORT",$Arg)))
        {
            $KeyNameList[] = $Arg;
            $SortRule[]    = '$'.$Arg;
        }
        else
        {
            $SortRule[]    = $Arg;
        }
        foreach($ArrayData AS $Key => $Info)
    {
        foreach($KeyNameList AS $KeyName)
        {
            ${$KeyName}[$Key] = $ Info[$KeyName];
        }
    }
 
    // Erstellen Sie die Bewertungszeichenfolge und bewerten Sie sie.
    $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',
        ' Typ'        => 'jpe',
        'time'        =>    '2005-11-13',
        =>    'jj',
    array(
'name' => 'Programmierung',
'size' =>
'type' => 13',
'class' => 'dd',
),
array(
'name' > ' 65',
'type' => 'jpe' ,
'time' => '1925-02-13',
'class' => 'yy',
) ,
array(
'name' => 'Chinesisches Kung Fu',
'Größe' => '5',
'Typ' =>                                             >
//Hinweis: 153 ist kleiner als 65 bei numerischer Sortierung
$temp = sysSortArray($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC ","SORT_STRING");

print_r($temp);

?>



Andere verwandte Sortierfunktionen:




sort ( array &$array [, int $sort_flags] )

Diese Funktion sortiert das Zielarray und jedes Element wird nach Wert von niedrig nach niedrig sortiert. Ordnet sie in der Reihenfolge der höchsten Note an dass die Funktionsparameter als Referenz übergeben werden und das sortierte Array nicht zurückgegeben wird, sondern nur das aktuelle Array sortiert und unabhängig vom Ergebnis keinen Wert zurückgibt.

Hinweis: Diese Funktion weist dem zu Zellen im Array. Dadurch werden die ursprünglichen Schlüssel gelöscht, anstatt sie nur neu anzuordnen.

$arr = array(9,5,2,6,8,4,3 ,1); ; print_r($arr); ?>


Ausgabe: (Sie können sehen, dass die Schlüsselwertzuordnung nicht mehr aufrechterhalten wird)

Array ( [ 0] => 1 [1] => 3 [3] => 5 [5] => )


asort ( array &$array [, int $sort_flags] )


Diese Funktion sortiert das Array und der Index des Arrays bleibt hauptsächlich mit der Einheit verknüpft Sortieren Sie assoziative Arrays, bei denen die Reihenfolge der Einheiten wichtig ist. Sie wird auch als Referenz übergeben und hat keinen Rückgabewert.


Ausgabe (Sie können sehen, dass der Schlüsselwert unverändert bleibt):

Array ( [5 ] = > 1 [1] => 4 [0] => 6 [3] => array &$array [, int $sort_flags] )

Diese Funktion ähnelt der Sortierfunktion und sortiert das Array in umgekehrter Reihenfolge (von der höchsten zur niedrigsten).

Hinweis: Diese Funktion weist den Zellen im Array neue Schlüsselnamen zu. Dadurch werden die Originalschlüssel gelöscht und nicht nur neu angeordnet.

Gibt TRUE zurück, wenn erfolgreich, und FALSE, wenn fehlgeschlagen.

arsort ( array &$array [, int $sort_flags] )


Diese Funktion sortiert das Array in umgekehrter Reihenfolge und der Index des Arrays bleibt mit der Einheit verknüpft. Wird hauptsächlich zum Sortieren assoziativer Arrays verwendet, bei denen die Reihenfolge der Zellen wichtig ist. Die Funktion arsort() ist mit asort() identisch, außer dass sie die Array-Elemente in umgekehrter Reihenfolge (absteigende Reihenfolge) sortiert.

Gibt TRUE zurück, wenn erfolgreich, und FALSE, wenn fehlgeschlagen.

ksort (array &$array [, int $sort_flags] )

Der Unterschied zwischen ksort und sort besteht darin, dass das Array nach Schlüsselnamen statt nach Wert und der Zuordnung zwischen Schlüsseln sortiert wird Name und Daten bleiben erhalten. Diese Funktion wird hauptsächlich für assoziative Arrays verwendet. Sie gibt TRUE zurück, wenn sie erfolgreich ist, und FALSE, wenn sie fehlschlägt.

krsort (array &$array [, int $sort_flags])
Siehe ksort. Diese Funktion ist die gleiche wie ksort, sortiert die Ergebnisse nach ksort jedoch in umgekehrter Reihenfolge.

natsort (array &$array)

Diese Funktion implementiert einen Sortieralgorithmus auf die gleiche Weise, wie Menschen normalerweise alphanumerische Zeichenfolgen sortieren, und behält die ursprüngliche Schlüssel-/Wertzuordnung bei. Dies wird als „natürliche Sortierung“ bezeichnet ". Der Unterschied zwischen diesem Algorithmus und dem üblichen Computer-String-Sortieralgorithmus (verwendet in sort()) wird im folgenden Beispiel gezeigt.

Gibt TRUE zurück, wenn erfolgreich, und FALSE, wenn es fehlschlägt.
Es gibt eine sehr klassisches Beispiel im PHP-Handbuch

Das Obige Beispiel gibt Folgendes aus: Standardsortierung

Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => ; img2.png )


Sortierung in natürlicher Reihenfolge

Array ( [3] => img1.png [2] => img2.png [1] => img10 .png [0 ] => img12.png )


Es gibt auch einige Array-Sortierfunktionen, die mit u(user) beginnen, bei denen es sich um benutzerdefinierte Sortierfunktionen handelt. Aus Zeitgründen werde ich hier nicht mehr schreiben.


Stellungnahme:
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
Vorheriger Artikel:PHP-Magie-MethodeNächster Artikel:PHP-Magie-Methode