目次
" >2.调it  
ホームページ php教程 PHP源码 返回数组维数(层数)

返回数组维数(层数)

Jun 01, 2016 pm 02:33 PM

调用

1

2

$arr = array(array(1,2=>array(1,2,3)),2=>array(1=>array(array(array())),2),3);

echo GetArrLv($arr);

ログイン後にコピー
ログイン後にコピー

例如 implode 一个多维数组会报错,当然我们可以用类似 array_search(true, array_map('is_array', $arr)) 这样的方法判断是否2维+(性能控请Hold住这只是个比方)。

下面,我们用 print_r 作为媒介。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

/**

 * 返回数组维数(层级)

 * @author echo* @param array $arr

 * @return int

 */

function GetArrLv($arr) {

    if (is_array($arr)) {      

        #递归将所有值置NULL,目的1、消除虚构层如array("array(\n  ()"),2、print_r 输出轻松点,

        array_walk_recursive($arr, function(&$val){ $val = NULL; });

 

        $ma = array();

        #从行首匹配[空白]至第一个左括号,要使用多行开关'm'

        preg_match_all("'^\(|^\s+\('m", print_r($arr, true), $ma);

        #回调转字符串长度

        //$arr_size = array_map('strlen', current($ma));

        #取出最大长度并减掉左括号占用的一位长度

        //$max_size = max($arr_size) - 1;

        #数组层间距以 8 个空格列,这里要加 1 个是因为 print_r 打印的第一层左括号在行首

        //return $max_size / 8 + 1;

        return (max(array_map('strlen', current($ma))) - 1) / 8 + 1;

    } else {

        return 0;

    }

}

ログイン後にコピー

2.调it

1

2

$arr = array(array(1,2=>array(1,2,3)),2=>array(1=>array(array(array())),2),3);

echo GetArrLv($arr);

ログイン後にコピー
ログイン後にコピー

 以上就是返回数组维数(层数)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)