ホームページ >バックエンド開発 >PHPの問題 >PHPで配列の次元数を確認する方法

PHPで配列の次元数を確認する方法

百草
百草オリジナル
2023-07-12 15:54:491635ブラウズ

配列の次元数を決定する

php メソッド: 1. この関数は、それ自体を再帰的に呼び出すことによって配列の次元を決定し、「foreach()」関数を使用してすべての要素をループします。は配列のままなので、次元を追加します。 1; 2. 「json_encode()」関数を使用して配列を JSON 文字列に変換し、正規表現を使用して JSON 文字列のレベルの深さを決定します。

PHPで配列の次元数を確認する方法

このチュートリアルのオペレーティング システム: Windows10 システム、PHP バージョン 8.1.3、DELL G3 コンピューター。

配列の次元数を決定する方法:

方法 1: 再帰を使用して配列の次元を決定する

コード例の関数以下は再帰的に呼び出されます 配列の次元をそれ自体で決定し、すべての要素をループしてもまだ配列である場合は、次元に 1 を追加します。

/**
 * 判断数组维度
 * 
 * @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;;

上記のコードの出力結果:

数组1的维度:1
数组2的维度:2
数组3的维度:3

方法 2: JSON 形式に変換して配列の次元を決定します

以下のコード例の関数は、配列をJSON文字列、正規表現でJSON文字列の階層の深さを判断して実装します。

/**
 * 判断数组维度
 * 
 * @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;;

上記のコード出力結果:

数组1的维度:1
数组2的维度:2
数组3的维度:3

上記は、配列の次元を決定するためによく使用される 2 つの方法です。実装は比較的簡単です。独自の方法に応じて、適切な方法を選択できます。ニーズ。

以上がPHPで配列の次元数を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。