php - 计算 get_define_vars 中的变量数量

标签 php arrays

我有未知数量的变量,例如:

$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);

我使用 $arr = get_define_vars(); 计算所有定义的变量

我如何计算变量的数量 - 在他的例子中是所有数组的数量?

我使用了foreach,但也许我没有正确执行此操作。

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

我不知道为什么结果是8:/

最佳答案

试试这个:

<?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;

注释:

  • 该代码仅计算数组,不计算标量 (is_array())。
  • 它不包括 super 全局数组,例如 GLOBALS_POST 等。

结果:

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

关于php - 计算 get_define_vars 中的变量数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35415622/

相关文章:

php - 无法将验证码数据插入mysql数据库

javascript - 通过Jquery输出JSON编码的数组

c++ - 使用 map 查找具有给定总和(带负数)的子数组

C 数组传递给函数 : how to absolutely prevent it from being written?

php - WordPress:如何将_filter添加到the_content的特殊div

javascript - ajax:从json数组中提取json对象

javascript - 如何使用自定义方法取消移位/移位单个值和多个值?

Java将一组字符串转换为String Array Integer Array

php - 如何将 CakePHP 专用于 API?

php - 如何在 postman RESTful Web 服务中发送多个文件?