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

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

PHPz
PHPzOriginal
2023-04-26 14:19:13561Durchsuche

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);

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 )

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) 
);

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));

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 ) 
)

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)
);

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;));

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 ) 
)

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!

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