douziqian2871 2016-02-15 17:37
浏览 42
已采纳

在get_defined_vars中计算变量

I have unknown number of variables, for example:

$number_one = array(21,5,4,33,2,45);
$number_two = array(1,5,14,23,42,35);
$number_three = array(13,33,45,17,2,7);
$number_four = array(2,44,5,21,23,33);

I count all defined vars with $arr = get_defined_vars();

How can I count number of vars - in his case number of all arrays?

I used foreach, but maybe I don't do this properly.

$i = 0;
foreach ($arr as $value) {
    $i++;
    echo '<br>';
    foreach ($value as $val) {
        echo $val.',';
    }
}
echo $i;

I don't know why result is 8 :/

  • 写回答

3条回答 默认 最新

  • duanjiwang2927 2016-02-15 17:52
    关注

    Try this:

    <?php
        $number_one   = array(21,5,4,33,2,45);
        $number_two   = array(1,5,14,23,42,35);
        $number_three = array(13,33,45,17,2,7);
        $number_four  = array(2,44,5,21,23,33);
        $variable_s   = 'adsfadfdfa';
        $variable_n   = 22;
    
        $vararr = get_defined_vars();
        // We want to exclude all the superglobals
        $globalarrays = array(
            'GLOBALS', 
            '_SERVER', 
            '_POST', 
            '_GET', 
            '_REQUEST', 
            '_SESSION', 
            '_COOKIE', 
            '_ENV', 
            '_FILES'
        );
    
        $narrays = 0;
        foreach($vararr as $key => $variable) {
            if ( !in_array($key, $globalarrays) && is_array($variable) ) {
                echo $key . ' is an array<br />';
                $narrays++;
            }
        }
    
        echo '# arrays = ' . $narrays;
    

    Notes:

    • The code counts only arrays, no scalars (is_array()).
    • It excludes the super global arrays like GLOBALS, _POST, etc.

    Result:

    number_one is an array
    number_two is an array
    number_three is an array
    number_four is an array
    # arrays = 4

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器