So bestimmt PHP, wie viele Dimensionen ein Array hat: 1. Die Funktion ermittelt die Dimensionen des Arrays, indem sie sich selbst rekursiv aufruft, und verwendet die Funktion „foreach()“, um alle Elemente zu durchlaufen. Die Dimension wird um eins erhöht. Die Implementierung erfolgt durch Konvertieren des Arrays in einen JSON-String über die Funktion „json_encode()“ und anschließendes Bestimmen der hierarchischen Tiefe des JSON-Strings mithilfe regulärer Ausdrücke.
Das Betriebssystem dieses Tutorials: Windows 10-System, PHP-Version 8.1.3, DELL G3-Computer.
Methoden zum Bestimmen, wie viele Dimensionen ein Array hat:
Methode 1: Verwenden Sie Rekursion, um die Array-Dimensionen zu bestimmen
Die Funktion im folgenden Beispielcode bestimmt die Dimensionen des Arrays, indem sie sich nach dem Durchlaufen rekursiv aufruft Bei allen Elementen handelt es sich immer noch um ein Array. Erhöhen Sie die Dimension um eins.
/** * 判断数组维度 * * @param array $arr * @return int */ function array_dimension($arr) { $dimension = 0; if (is_array($arr)) { foreach ($arr as $item) { if (is_array($item)) { $sub_dimension = array_dimension($item); if ($sub_dimension > $dimension) { $dimension = $sub_dimension; } } } $dimension++; } return $dimension; } // 示例数据 $arr1 = array(1, 2, 3); $arr2 = array(array(1, 2), array(3, 4)); $arr3 = array(array(array(1, 2), array(3, 4)), array(array(5, 6), array(7, 8))); echo '数组1的维度:' . array_dimension($arr1) . '<br>'; echo '数组2的维度:' . array_dimension($arr2) . '<br>'; echo '数组3的维度:' . array_dimension($arr3) . '<br>';
Das obige Code-Ausgabeergebnis:
数组1的维度:1 数组2的维度:2 数组3的维度:3
Methode 2: In JSON-Format konvertieren, um die Array-Dimension zu bestimmen
Die Funktion im folgenden Beispielcode konvertiert das Array in eine JSON-Zeichenfolge und bestimmt dann die hierarchische Tiefe des JSON String durch reguläre Ausdrücke realisiert.
/** * 判断数组维度 * * @param array $arr * @return int */ function array_dimension($arr) { $json_arr = json_encode($arr, JSON_UNESCAPED_UNICODE); $max_depth = 1; if (preg_match_all('/(?:^|\{|\,)\s*(\[(?R)*\]|\{(?R)*\})\s*(?:(?=\:)|$)/', $json_arr, $m)) { foreach ($m[1] as $val) { $depth = substr_count(str_replace(["[", "{", "]", "}"], "", $val), ',') + 1; if ($depth > $max_depth) { $max_depth = $depth; } } } return $max_depth; } // 示例数据 $arr1 = array(1, 2, 3); $arr2 = array(array(1, 2), array(3, 4)); $arr3 = array(array(array(1, 2), array(3, 4)), array(array(5, 6), array(7, 8))); echo '数组1的维度:' . array_dimension($arr1) . '<br>'; echo '数组2的维度:' . array_dimension($arr2) . '<br>'; echo '数组3的维度:' . array_dimension($arr3) . '<br>';
Das obige Code-Ausgabeergebnis:
数组1的维度:1 数组2的维度:2 数组3的维度:3
Die oben genannten Methoden sind relativ einfach zu implementieren. Sie können die geeignete Methode entsprechend Ihren eigenen Anforderungen auswählen.
Das obige ist der detaillierte Inhalt vonSo bestimmen Sie, wie viele Dimensionen ein Array in PHP hat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!