Aktueller Standort: Startseite> Neueste Artikel> Reset () -Funktion in Kombination mit dem praktischen Fall von Array_Map () nimmt Sie mit, um die PHP -Array -Verarbeitung ausführlich zu verstehen

Reset () -Funktion in Kombination mit dem praktischen Fall von Array_Map () nimmt Sie mit, um die PHP -Array -Verarbeitung ausführlich zu verstehen

gitbox 2025-07-02

In PHP sind Arrays eine der am häufigsten verwendeten Datenstrukturen. Bei der Verarbeitung von Arrays verwenden wir häufig integrierte Funktionen, um die Vorgänge wie Array_Map () und Reset () zu vereinfachen. Diese beiden Funktionen scheinen irrelevant zu sein, können jedoch in einigen praktischen Szenarien in Kombination verwendet werden, um eine effiziente und präzise logische Verarbeitung zu erreichen. In diesem Artikel wird ein praktischer Fall verwendet, um zutiefst zu analysieren, wie sie zusammen verwendet werden, um Ihnen zu helfen, die Fähigkeiten zur Verarbeitung von Master -PHP -Array zu verbessern.

1. Funktion Einführung

1.. Reset ()

Reset () ist eine Funktion, die einen internen Zeiger auf das erste Element hinweist und den Wert dieses Elements zurückgibt.

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">20</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>];
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">reset</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>); </span><span><span class="hljs-comment">// Ausgabe 10</span></span><span>
</span></span>

2. Array_map ()

array_map () wendet eine Rückruffunktion auf jedes Element des Arrays an, wobei ein verarbeiteter Neuarray zurückgegeben wird.

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$v</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$v</span></span><span> * </span><span><span class="hljs-number">2</span></span><span>;
}, </span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-comment">// $result = [2, 4, 6]</span></span><span>
</span></span>

2. Praktischer Fall: Extrahieren Sie den ersten Wert in jedem Datensatz von Daten

Stellen Sie sich ein Szenario vor, in dem Sie ein zweidimensionales Array haben, das eine Sammlung von Feldern aus der Datenbank darstellt, und Sie kümmern sich nur um den ersten Wert in jedem Datensatz.

Beispieldaten

 <span><span><span class="hljs-variable">$data</span></span><span> = [
    [</span><span><span class="hljs-string">'apple'</span></span><span>, </span><span><span class="hljs-string">'red'</span></span><span>],
    [</span><span><span class="hljs-string">'banana'</span></span><span>, </span><span><span class="hljs-string">'yellow'</span></span><span>],
    [</span><span><span class="hljs-string">'grape'</span></span><span>, </span><span><span class="hljs-string">'purple'</span></span><span>],
];
</span></span>

Das Ziel ist es, das erste Element in jedem Subtarray zu extrahieren, d. H. ['Apple', 'Banana', 'Grape'] .

Traditionelle Praktiken

Normalerweise verwenden wir, um damit umzugehen:

 <span><span><span class="hljs-variable">$result</span></span><span> = [];
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$data</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>) {
    </span><span><span class="hljs-variable">$result</span></span><span>[] = </span><span><span class="hljs-title function_ invoke__">reset</span></span><span>(</span><span><span class="hljs-variable">$item</span></span><span>);
}
</span></span>

Obwohl möglich, ist der Code ein bisschen ausführlich. Wir können Array_map () und Reset () verwenden, um es zu optimieren.

Elegante Praxis: Reset () wird in Kombination mit Array_Map () verwendet

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'reset'</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>

Ausgangsergebnis:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; apple
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; grape
)
</span></span>

Ist es nicht sehr prägnant? Hier ruft Array_map () reset () auf jedem Subtarray von $ daten auf, wodurch das erste Element jedes Subtarrays zurückgegeben wird.

3.. Dinge zu beachten und fortgeschrittene Verwendung

1. Fragen zu Referenztypen

reset () modifiziert tatsächlich den internen Zeiger des Arrays, aber wenn sie in array_map () verwendet werden, wird jedes Subtarray mit einem Wert übergeben, sodass es das ursprüngliche Array nicht beeinflusst. Deshalb ist diese Verwendung sicher.

2. Die Subtarray ist leer

Wenn eine Subtarray leer ist, gibt Reset () false zurück. Daher kann ein Filterprozess hinzugefügt werden:

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'reset'</span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>), function(</span><span><span class="hljs-variable">$val</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$val</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>;
});
</span></span>

3.. Benutzerdefinierte Extraktionslogik

Wenn eine komplexere Extraktionslogik erforderlich ist, wie z. B. das zweite Element, können Sie anonyme Funktionen kombinieren:

 <span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$item</span></span><span>) {
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span>[</span><span><span class="hljs-number">1</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><span>;
}, </span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

4. Zusammenfassung

In diesem Fall sehen wir, dass die clevere Kombination von Reset () und Array_Map () den Code nicht nur prägnanter und eleganter machen kann, sondern auch die Lesbarkeit und Wartung verbessern kann. Diese Kombinationsmethode eignet sich sehr für die Verarbeitung von Datenextraktion an bestimmten Stellen in zweidimensionalen Arrays und ist ein Tipp, den jeder PHP-Entwickler beherrschen sollte.

Durch die Beherrschung dieser grundlegenden und leistungsstarken Funktionskombinationen werden Ihre Effizienz und Codequalität bei der Array -Verarbeitung erheblich verbessert.