PHP Wie trenne ich ungerade und gerade Elemente aus einem Array, ohne eine Schleife zu verwenden?
In PHP erhalten Sie ein Array aus n Elementen. Sie müssen die Elemente aus dem Array danach trennen, ob die Elemente ungerade oder gerade sind. Das heißt, Sie drucken die ungeraden und geraden Arrays getrennt aus, ohne das ursprüngliche Array zu durchlaufen oder Schleifen zu verwenden.
Beispiel:
输入: array(2, 5, 6, 3, 0) 输出: 奇数array: 5 , 3 偶数array: 2, 6, 0 输入: $input = array(0, 1, 2, 3, 4, 5) 输出: 奇数array: 1, 3, 5 偶数array: 0, 2, 4
Diese Art von Problemen kann leicht gelöst werden, indem man das Array durchläuft und die ungeraden oder geraden einzelnen Elemente ausgibt, aber das wird mehr Codezeilen in Anspruch nehmen und der Code wird es tun Es entsteht ein Schleifen-Overhead. Um die Verwendung von Schleifen zu vermeiden, werden wir versuchen, einige in PHP integrierte Funktionen zu verwenden. Hier verwenden wir zwei PHP-Array-Funktionen array_filter() und array_values(), um dieses Problem zu lösen.
array_filter(): Diese Funktion wird verwendet, um ungerade/gerade Elemente im Eingabearray zu filtern.
array_values(): Diese Funktion wird verwendet, um ungerade und gerade Arrays neu zu indizieren, da array_filter ungerade und gerade Arrays denselben Index haben wie ihre Elemente im Eingabearray.
Hinweis: Die Funktion array_filter() filtert nur ungerade/gerade Indexelemente und ihre Indexwerte. Nach Anwendung der Funktion array_filter() betragen die Indizes des ungeraden Arrays 1,3,5 und die Indizes des geraden Arrays 0,2,4.
Algorithmus:
Elemente filtern :
Ungerade Elemente nach array_filter() filtern.
Gerade Elemente über array_filter() filtern.
Array neu indizieren:
Ungerade Arrays mit array_values() neu indizieren.
Indizieren Sie gerade Arrays mit array_values() neu.
Gerade/ungerade Array drucken.
Das Folgende ist die PHP-Implementierung des obigen Algorithmus:
<?php $input = array(4, 3, 6, 5, 8, 7, 2); function oddCmp($input) { return ($input & 1); } function evenCmp($input) { return !($input & 1); } $odd = array_filter($input, "oddCmp"); $even = array_filter($input, "evenCmp"); $odd = array_values(array_filter($odd)); $even = array_values(array_filter($even)); print"奇数数组:\n"; print_r($odd); print"偶数数组:\n"; print_r($even); ?>
Die Ausgabe ist wie folgt:
Dieser Artikel ist eine Einführung in die spezifische Methode, wie man ungerade und gerade Zahlen in einem PHP-Array trennt (ohne Schleifen zu verwenden). Ich hoffe, er wird Freunden in Not hilfreich sein!
Das obige ist der detaillierte Inhalt vonSo trennen Sie ungerade und gerade Zahlen in einem PHP-Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!