Heim > Backend-Entwicklung > PHP-Problem > So bestimmen Sie, wie viele Dimensionen ein Array in PHP hat

So bestimmen Sie, wie viele Dimensionen ein Array in PHP hat

百草
Freigeben: 2023-07-12 15:55:38
Original
1634 Leute haben es durchsucht

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.

So bestimmen Sie, wie viele Dimensionen ein Array in PHP hat

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 &#39;数组1的维度:&#39; . array_dimension($arr1) . &#39;<br>&#39;;
echo &#39;数组2的维度:&#39; . array_dimension($arr2) . &#39;<br>&#39;;
echo &#39;数组3的维度:&#39; . array_dimension($arr3) . &#39;<br>&#39;;
Nach dem Login kopieren

Das obige Code-Ausgabeergebnis:

数组1的维度:1
数组2的维度:2
数组3的维度:3
Nach dem Login kopieren
Nach dem Login kopieren

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(&#39;/(?:^|\{|\,)\s*(\[(?R)*\]|\{(?R)*\})\s*(?:(?=\:)|$)/&#39;, $json_arr, $m)) {
    foreach ($m[1] as $val) {
      $depth = substr_count(str_replace(["[", "{", "]", "}"], "", $val), &#39;,&#39;) + 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 &#39;数组1的维度:&#39; . array_dimension($arr1) . &#39;<br>&#39;;
echo &#39;数组2的维度:&#39; . array_dimension($arr2) . &#39;<br>&#39;;
echo &#39;数组3的维度:&#39; . array_dimension($arr3) . &#39;<br>&#39;;
Nach dem Login kopieren

Das obige Code-Ausgabeergebnis:

数组1的维度:1
数组2的维度:2
数组3的维度:3
Nach dem Login kopieren
Nach dem Login kopieren

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!

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
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage