Heim > Backend-Entwicklung > PHP-Problem > So überprüfen Sie die Dimensionalität eines Arrays in PHP

So überprüfen Sie die Dimensionalität eines Arrays in PHP

DDD
Freigeben: 2023-07-13 16:14:45
Original
1598 Leute haben es durchsucht

So überprüfen Sie in PHP, ob ein Array ein mehrdimensionales Array ist: 1. Mithilfe der Schleifenrekursionsbeurteilung können Sie eine rekursive Funktion zum Durchlaufen des Arrays schreiben und dieselbe Funktion rekursiv aufrufen, wenn Sie auf ein verschachteltes Array stoßen ein Nicht-Array-Element, gibt die Anzahl der aktuell durchlaufenen Ebenen zurück. 2. Verwenden Sie die Funktion „array_filter“, um zu vergleichen, ob die Gesamtzahl der Elemente des Arrays und die rekursive Anzahl gleich sind Array ist ein mehrdimensionales Array. 3. Verwenden Sie die Funktion array_walk_recursive usw. .

So überprüfen Sie die Dimensionalität eines Arrays in PHP

Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP8.1.3-Version, Dell G3-Computer.

In PHP ist die Überprüfung, ob ein Array ein eindimensionales Array oder ein mehrdimensionales Array ist, eine häufige Aufgabe. Beim Umgang mit Array-Operationen ist es wichtig, die Dimensionen des Arrays zu verstehen, da sie sich auf die Methoden auswirken, die wir zum Durchlaufen und Bearbeiten des Arrays verwenden.

Wie kann man also überprüfen, ob ein Array ein eindimensionales Array oder ein mehrdimensionales Array ist? Im Folgenden werden verschiedene Beurteilungsmethoden vorgestellt.

1. Verwenden Sie die Schleifenrekursion, um zu bestimmen

Die Verwendung der Schleifenrekursion ist eine gängige Methode, um die Abmessungen eines Arrays zu überprüfen. Sie können eine rekursive Funktion schreiben, die ein Array durchläuft und dieselbe Funktion rekursiv aufruft, wenn verschachtelte Arrays gefunden werden. Wenn ein Nicht-Array-Element angetroffen wird, wird die aktuell durchlaufene Ebene zurückgegeben. Zum Beispiel:

function getArrayDepth($array){
$max_depth = 1;
foreach($array as $value){
if(is_array($value)){
$depth = getArrayDepth($value) + 1;
if($depth > $max_depth){
$max_depth = $depth;
}
}
}
return $max_depth;
}
Nach dem Login kopieren

Verwendungsbeispiel:

$array1 = [1, 2, 3];
$array2 = [1, [2, 3]];
$array3 = [1, [2, [3]]];
echo getArrayDepth($array1); // 输出1
echo getArrayDepth($array2); // 输出2
echo getArrayDepth($array3); // 输出3
Nach dem Login kopieren

Diese Methode durchläuft das Array rekursiv und ruft dieselbe Funktion rekursiv auf, wenn ein verschachteltes Array gefunden wird, wodurch schließlich die maximale Tiefe des Arrays zurückgegeben wird.

2. Verwenden Sie die Funktion array_filter

Die Funktion array_filter von PHP kann die Elemente im Array gemäß der angegebenen Rückruffunktion filtern und die Elemente zurückgeben, die die Bedingungen erfüllen. Mit der Funktion array_filter können wir prüfen, ob ein Array verschachtelte Arrays enthält.

function isMultiDimensional($array){
return (count($array) !== count($array, COUNT_RECURSIVE));
}
Nach dem Login kopieren

Anwendungsbeispiel:

$array1 = [1, 2, 3];
$array2 = [1, [2, 3]];
$array3 = [1, [2, [3]]];
var_dump(isMultiDimensional($array1)); // 输出false
var_dump(isMultiDimensional($array2)); // 输出true
var_dump(isMultiDimensional($array3)); // 输出true
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode ermittelt, ob verschachtelte Arrays vorhanden sind, indem sie vergleicht, ob die Gesamtzahl der Elemente des Arrays und die Rekursionsanzahl gleich sind. Wenn sie nicht gleich sind, bedeutet dies, dass das Array ein mehrdimensionales Array ist.

3. Verwenden Sie die Funktion array_walk_recursive

Die Funktion array_walk_recursive von PHP kann rekursiv eine benutzerdefinierte Funktion für jedes Element im Array aufrufen. Mit dieser Funktion können wir prüfen, ob ein Array verschachtelte Arrays enthält.

function isMultiDimensional($array){
$result = false;
$callback = function($value) use (&$result){
if(is_array($value)){
$result = true;
}
};
array_walk_recursive($array, $callback);
return $result;
}
Nach dem Login kopieren

Anwendungsbeispiel:

$array1 = [1, 2, 3];
$array2 = [1, [2, 3]];
$array3 = [1, [2, [3]]];
var_dump(isMultiDimensional($array1)); // 输出false
var_dump(isMultiDimensional($array2)); // 输出true
var_dump(isMultiDimensional($array3)); // 输出true
Nach dem Login kopieren
Nach dem Login kopieren

Diese Methode verwendet die Funktion array_walk_recursive, um jedes Element im Array zu durchlaufen, setzt sie ein Flag-Bit auf true und gibt schließlich den Wert des Flag-Bits zurück.

Die oben genannten sind drei gängige Methoden, um zu überprüfen, ob ein Array ein eindimensionales Array oder ein mehrdimensionales Array ist. Wählen Sie die geeignete Methode entsprechend den tatsächlichen Anforderungen aus, um bei der Verarbeitung von Array-Operationen flexibler und effizienter zu sein.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie die Dimensionalität eines Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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