Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie ein PHP-Array in ein Index-Array

So konvertieren Sie ein PHP-Array in ein Index-Array

PHPz
Freigeben: 2023-04-26 14:43:54
Original
651 Leute haben es durchsucht

In der PHP-Programmierung ist Array ein sehr wichtiger Datentyp, der uns das Speichern, Verarbeiten und Betreiben von Daten erleichtert. Unter diesen ist das Index-Array einer der am häufigsten verwendeten Array-Typen. Es verwendet eine Zahl als Schlüsselnamen, die einem numerischen Wert oder einem Zeichenfolgenwert entspricht. Hier besprechen wir, wie man Permutationen an indizierten Arrays durchführt.

1. Array-Sortiermethode

In PHP können wir die Funktion sort() verwenden, um das Index-Array in aufsteigender Reihenfolge zu sortieren, und die Funktion rsort(), um das Index-Array in absteigender Reihenfolge zu sortieren, wie unten gezeigt:

//升序排列 
$numbers = array(3, 1, 5, 2, 4); 
sort($numbers); 
print_r($numbers); 

//降序排列 
$numbers = array(3, 1, 5, 2, 4);  
rsort($numbers);  
print_r($numbers);
Nach dem Login kopieren

Die Ausgabeergebnisse sind:

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) 
Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
Nach dem Login kopieren

2. Array-Transpositionsmethode

Array-Transposition bezieht sich auf den Austausch von Zeilen und Spalten in einem mehrdimensionalen Array, um ein neues Array zu generieren. Zum Beispiel für ein zweidimensionales Array:

$nums = array( 
    array(1, 2, 3), 
    array(4, 5, 6), 
    array(7, 8, 9) 
);
Nach dem Login kopieren

Wir können die Funktion array_map() und den Nullwert verwenden, um es wie folgt zu transponieren:

function transposeArray($array, $nullFiltered = true) { 
    $aOut = array_map(null, ...$array); 
    return ($nullFiltered) ? array_filter($aOut) : $aOut; 
} 
 
print_r(transposeArray($nums));
Nach dem Login kopieren

Das Ausgabeergebnis ist:

Array ( 
    [0] => Array ( [0] => 1 [1] => 4 [2] => 7 ) 
    [1] => Array ( [0] => 2 [1] => 5 [2] => 8 ) 
    [2] => Array ( [0] => 3 [1] => 6 [2] => 9 ) 
)
Nach dem Login kopieren

Hier definieren wir zunächst eine Funktion mit dem Namen transposeArray wird in einem Array und einer booleschen Variablen übergeben. Unter anderem verwenden wir den in PHP 5.6 eingeführten Parameter variabler Länge (...$array), um den Nullwert für jedes Unterarray im zu transponierenden mehrdimensionalen Array zu implementieren. Schließlich verwenden wir die Funktion array_filter(), um die Nullwerte im Ergebnisarray herauszufiltern und die erforderlichen Ergebnisse zu erhalten.

3. Kombination aus Array-Sortierung und -Transposition

Im eigentlichen Programmierprozess müssen wir häufig ein mehrdimensionales Array nach einem bestimmten Schlüsselwort sortieren und das Array nach dem Sortieren auch transponieren. Wir haben zum Beispiel das folgende assoziative Array mit Zahlen als Schlüssel:

$arr = array(
    3 => array("name" => "apple", "price" => 2.5),
    1 => array("name" => "banana", "price" => 1.5),
    4 => array("name" => "orange", "price" => 3.5),
    2 => array("name" => "pear", "price" => 2.0)
);
Nach dem Login kopieren

Als nächstes können wir die Funktion sortArray() definieren, um das Array in aufsteigender Reihenfolge nach „Preis“ zu sortieren und das Ergebnisarray zu transponieren. Sie können es auch übergeben Ein Feldname zum Sortieren nach verschiedenen Feldern. Der Code lautet wie folgt:

function sortArray($arr, $keyName = '', $sortOrder = 'ASC') {
    $sortResult = array();
    $arrLen = count($arr);
    if ($arrLen > 0) {
        $priceArr = array();
        for ($i = 0; $i < $arrLen; $i++) {
            if ($keyName != &#39;&#39; && isset($arr[$i][$keyName])) {
                $priceArr[] = $arr[$i][$keyName];
            } else {
                $priceArr[] = $arr[$i][&#39;price&#39;];
            }
        }
        if (strtolower($sortOrder) == &#39;desc&#39;) {
            array_multisort($priceArr, SORT_DESC, SORT_NUMERIC, $arr);
        } else {
            array_multisort($priceArr, SORT_ASC, SORT_NUMERIC, $arr);
        }
        $sortResult = transposeArray($arr);
    }
    return $sortResult;
}

print_r(sortArray($arr, &#39;price&#39;, &#39;ASC&#39;));
Nach dem Login kopieren

Wenn wir „Preis“ als zweiten Parameter übergeben, lautet das Ausgabeergebnis:

Array ( 
    [name] => Array ( [0] => banana [1] => pear [2] => apple [3] => orange ) 
    [price] => Array ( [0] => 1.5 [1] => 2 [2] => 2.5 [3] => 3.5 ) 
)
Nach dem Login kopieren

Hier beurteilen wir zunächst, ob das Array leer ist Wenn nicht, rufen Sie zunächst den Preiswert im ursprünglichen Array ab und verwenden Sie die Funktion array_multisort(), um das Array in aufsteigender oder absteigender Reihenfolge zu sortieren. Anschließend verwenden wir die Funktion transposeArray(), um das resultierende Array zu transponieren.

Zusammenfassung

Zusammenfassend stellt dieser Artikel die Methode zum Sortieren von Indexarrays in PHP vor. Die Sortierung wird durch die Funktionen sort() und rsort() implementiert, die Transposition des Arrays wird mithilfe der Funktion transposeArray() implementiert, und Sortierung und Transposition werden durch die Kombination von Sortierung und Transposition implementiert, um mehrdimensionale Arrays nach Feldern und Transponierungsoperationen zu sortieren. Die Beherrschung dieser Methoden wird unsere PHP-Programmierung komfortabler und flexibler machen und die Effizienz unserer Programmentwicklung verbessern.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein PHP-Array in ein Index-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage