Heim php教程 PHP开发 php array_map array_multisort verwaltet effizient die mehrdimensionale Array-Sortierung

php array_map array_multisort verwaltet effizient die mehrdimensionale Array-Sortierung

Dec 14, 2016 pm 01:11 PM

Um mehrdimensionale Arrays zu sortieren, besteht der allgemeine Ansatz darin,
1 die sortierten Daten zu erhalten und sie in das Array $arrSort einzufügen. Der Schlüsselindex ist der Index des zu sortierenden Arrays, um die Eindeutigkeit sicherzustellen
2 Verwenden Sie die Sortierfunktion sort usw., um $arrSort zu sortieren. 3 Durchlaufen Sie $arrSort, ermitteln Sie die Daten des mehrdimensionalen Arrays gemäß seinem Index und rekonstruieren Sie das sortierte mehrdimensionale Array 🎜>Der Code lautet wie folgt:
Array

(

[0] => Array
(
[link] => test
[name] => test.rpm
[Typ] => Datei
[Größe] => 988,9 KB
[mtime] => 1185160178)
....
)

Ich habe eine Sortierfunktion gefunden im Internet vor langer Zeit. Effizient, aber sehr praktisch

Der Code lautet wie folgt:

_array_sort($arrFile, 1, 1);// Nach dem Namensfeld sortieren

_array_sort ($arrFile, 3, 1);//Nach Größe Feldsortierung

/*
@records Zu sortierendes Array
@field Zu sortierendes Feld, beachten Sie, ob es eine Zahl ist
@ Vorwärts- oder Rückwärtsreihenfolge
*/
function _array_sort( $records, $field, $reverse, $defaultSortField = 0)
{
$uniqueSortId = 0;
$hash = array( );
$sortedRecords = array();
$indexedArray = array();

foreach( $records as $record)
{
$uniqueSortId++;
$recordStr = implode("|", $record)."|".$uniqueSortId;

$recordArray[] = explosion(" |", $recordStr);

}

$primarySortIndex = count($record);
$records = $recordArray;

foreach($records as $record)

{

$hash[$record[$primarySortIndex]] = $record[$field];
uasort($hash, "strnatcasecmp");

if($reverse)

$hash = array_reverse($hash, true);

$valueCount = array_count_values($hash);

foreach($hash as $primaryKey => $value)
{
$indexedArray[] = $primaryKey;

}

$i = 0;

foreach($hash as $primaryKey => $value)
{
$i++;
if($valueCount[$value] > 1)

{

foreach($records as $record)
{
if($primaryKey == $record[$ PrimarySortIndex])
{
$tempArr[$record[ $defaultSortField]."__".$i] = $record;
}
}

$index = array_search($primaryKey, $indexedArray);

if(($i == count($records)) || ($value != $hash[$indexedArray[$index+1]] ))
{
uksort($tempArr, "strnatcasecmp ");

if($reverse)

$tempArr = array_reverse($tempArr);

foreach( $tempArr as $newRecs)
{
$sortedRecords [ ] = $newRecs;

$tempArr = array();
}

else

{
foreach($records as $record)
{
if($primaryKey == $record[$primarySortIndex])

{

$sortedRecords[] = $record;
break;
}
}
}
return $sortedRecords;
}

II Verwenden Sie array_map und array_mutisort, um
array_mutisor zu sortieren Führen Sie auch eine sekundäre oder tertiäre Sortierung basierend auf mehreren Werten durch. Eine Funktion kann nicht verglichen werden.

Der Code lautet wie folgt:
Verwenden Sie array_map, um das zu sortierende Array abzurufen
$arrField = array_map(create_function('$n', 'return $n["size" ];'), $arrFile);

III Abschlusstest
Mit 188 Daten Das Array wird 50 Mal getestet, um den Durchschnitt zu ermitteln

Der erste Weg

0,04269016 Name
0,04267142 Größe

Die zweiter Weg

0,001249 Name
0,00083924 Größe

Vielen Dank fürs Lesen. Wenn Sie weitere verwandte Inhalte erhalten möchten, achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!

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)