我有未知数量的变量,例如:
$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/