Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 2908|Antwort: 0

Neueinsteiger-Beitrag: PHP fasst 6 Wege zusammen, Arrays zu durchlaufen

[Link kopieren]
Veröffentlicht am 08.06.2022 15:56:10 | | |


Im täglichen Betrieb von PHP sind Arrays die häufigste Struktur, und wir arbeiten fast täglich mit arraybezogenen Inhalten. Die Frage ist also: Wie durchläuft und verarbeitet man Arrays im Allgemeinen?


1、für jeden
Es kommt mir bekannt vor, ist es nicht dein Lieblingsstück?
$arr = ['a', 'b', 'c'];
foreach ($arr als $key => $value) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


2、array_map
Verwenden Sie anonyme Funktionen, um jedes Element im Array zu verwalten. Ein neues Array wird zurückgegeben, wenn das Durchlauf abgeschlossen ist
$arr = ['a', 'b', 'c'];
$arr = array_map(Funktion ($item) {
    Zurück $item. '_i';
}, $arr);
print_r($arr); ['a_i', 'b_i', 'c_i'];
Man kann mit mehreren Arrays gleichzeitig arbeiten
$arr_1 = ['a', 'b', 'c'];
$arr_2 = ['du', 'gut', 'ist', 'original', 'sin'];
$arr_n = [...];
$arr = array_map(Funktion ($item_1, $item_2) {
    Return $item_1 . '_' . $item_2 . '_i';
}, $arr_1, $arr_2);
print_r($arr); ['a_ du _i', 'b_ ist good_i', 'Bist du c__i', '_original _i', '_sin_i']
Ja, die Anzahl der Durchquerungen basiert auf dem längsten Array.
Nach dreimalem Durchlaufen ist $arr_1 tatsächlich abgeschlossen, sodass die Werte von $item_1 danach null sind


3、array_walk
Das Durchqueren des Arrays als Referenzpass hat keinen Rückgabewert und kann nur ein Array verarbeiten.
$arr = ['a', 'b', 'c'];
array_walk($arr, function (&$item) {
    $item = $item . '_i';
});


print_r($arr); ['a_i', 'b_i', 'c_i'];
Beachten Sie &$item, ja, es gibt ein zusätzliches &, was bedeutet, dass Ihr Parameter Daten durch Referenz empfängt. Du musst nur einen Weg finden, diesen Parameter zu ändern.


Wenn Sie es mit zweidimensionalen Arrays zu tun haben, ist die Verarbeitungsmethode ebenfalls untrennbar.
$arr = [
    ['name' => 'a'],
    ['name' => 'b'],
    ['name' => 'c']
];
array_walk($arr, function (&$item) {
    $item['name'] = $item['name'] . '_i';
});
print_r($arr); [['name' => 'a_i'], ['name' => 'b_i'], ['name' => 'c_i']];


4、für
Das sollte eine sehr generische Syntax sein
$arr = ['a', 'b', 'c'];
für ($i = 0; $i < Zähl($arr); ++$i) {
    $arr[$i] = $arr[$i] . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];
Nicht zu empfehlen. Es ist nicht so effizient wie Foreach. Und die Schreibmethode ist etwas umständlicher als Übergriff.


5.
Haha, diese Funktion wurde in PHP7.2 @deprecated aufgegeben und wirkt besonders altmodisch. Auch die Ausführungseffizienz dieser Schreibmethode ist nicht gut, und Anfänger sollten sofort aufgeben.
$arr = ['a', 'b', 'c'];
während (list($key, $value) = each($arr)) {
    $arr[$key] = $value . '_i';
}
print_r($arr); ['a_i', 'b_i', 'c_i'];


6、Reset
Genauer gesagt handelt es sich nicht nur um eine Funktion zum Zurücksetzen, sondern auch um eine Kombination mehrerer eingebauter Funktionen, die im Grunde nicht zum Schreiben von Code verwendet wird
$arr = ['a', 'b', 'c'];
reset()-Zeiger auf den Kopf, tatsächlich zeigt standardmäßig auf den Anfang, du kannst diesen Satz ignorieren
reset($arr);
current(), um den Elementwert des aktuellen Zeigers zu erhalten.
während ($value = Strom($arr)) {
    key(), um das Element-Subskript des aktuellen Zeigers zu erhalten
    $arr[key($arr)] = $value . '_i';
    next()-Zeiger auf den nächsten
    nächstes($arr);
}
print_r($arr); ['a_i', 'b_i', 'c_i'];





Vorhergehend:[Praktische Schlacht] Verpackung ASP.NET Kerne in ein Image NUGET Timeout-Problem
Nächster:Kindeditor Editor Bulk-Upload von Bilderweiterungen (keine Flash-Abhängigkeit)
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com