计数()返回错误值
我使用以下代码:计数()返回错误值
$row_arr=$_POST['row_driver'];
print_r($row_arr);
回报:
阵列([0] => D1 [1] => D2 [2] => D3 [3] => D5)
但
echo count($row_arr);
是回到我的
任何理由的值?
这里row_driver是通过一个形式接收从使用HTML形式的隐藏的元素属性的先前PHP页面的阵列。此外,
foreach($row_arr as $driver)
{
//code here
}
在返回:
警告:的foreach()无效的论点提供在 d:\ XAMPP \ htdocs中\的拼\上线booking_feed.php 36
你所面临的问题是与事实$_POST['row_driver']
不是数组。
如果你有一个隐藏的HTML输入:
<input type="hidden" name="row_driver" value="<?php print_r($rows); ?>">
...然后$_POST['row_driver']
将是一个字符串,如:
$_POST['row_driver'] = "Array ([0] => d1 [1] => d2 [2] => d3 [3] => d5)";
,因此,在1
你count()
函数结果
这也可以解释你所面临的第二个问题,有foreach()
,其中函数需要一个数组,但你提供一个字符串。
的溶液是使用foreach循环为隐藏的HTML输入这样的:
<?php foreach($rows as $row_driver){?>
<input type="hidden" name="row_driver[]" value="<?php echo $row_driver; ?>"/>
<?php }?>
这然后打开$_POST['row_driver']
到一个数组。
问题在于隐藏字段
foreach ($rows as $value){
<input type="hidden" name="row_driver[]" value="<?php echo $value; ?>">
}
您可能只是将在一些变量计数值:
$row_arr=Array('d1','d2','d3','d4');
print_r($row_arr);
$count = count($row_arr);
echo 'Your Count is:- '.$count;
它返回相同的值。 –
表达
The expression to be printed. return If you would like to capture the output of print_r(), use the return parameter. When this parameter is set to TRUE, print_r() will
回报的信息,而不是打印出来。
返回值
如果给定的一个字符串,整数或浮点数,本身将被打印的值。 如果给定一个数组,值将以显示 键和元素的格式显示。类似的符号用于对象。
当返回参数为TRUE时,此函数将返回一个字符串。 否则,返回值为TRUE。
print_r()
可以使用特殊打印方法在阵列和关联数组(对于此更有用)来显示的所有值。
关联数组:
Associative arrays是使用您分配给他们的名字命名的键阵列。
如果使用echo
你有一个数组索引打印。作为示例$row_arr[0]
或者如果您使用关联数组而不是索引,则使用key。它可能是字符串。
[如何计算php关联数组中项目的数量]的可能重复(https://stackoverflow.com/questions/10604173/how-to-count-the-number-of-items-in-a -php-associative-array) –
这看起来像一个索引数组 – Webdev
如果你有一个隐藏的HTML输入,那么'$ _POST ['row_driver']'是一个字符串吗?这也解释了你正在面临的第二个问题,用'foreach()' – JustBaron