[英]count() returning wrong value
我正在使用以下代碼:
$row_arr=$_POST['row_driver'];
print_r($row_arr);
返回:
數組([0] => d1 [1] => d2 [2] => d3 [3] => d5)
但
echo count($row_arr);
給我的價值是
1個
有什么原因嗎?
這里row_driver是一個數組,它使用HTML表單的hidden元素屬性通過表單從上一個PHP頁面接收。 也,
foreach($row_arr as $driver)
{
//code here
}
正在返回:
警告:第36行的D:\\ XAMPP \\ htdocs \\ Carpool \\ booking_feed.php中為foreach()提供的參數無效
您可能只是將計數值存儲在一些變量中:
$row_arr=Array('d1','d2','d3','d4');
print_r($row_arr);
$count = count($row_arr);
echo 'Your Count is:- '.$count;
問題在於隱藏的領域
foreach ($rows as $value){
<input type="hidden" name="row_driver[]" value="<?php echo $value; ?>">
}
您面臨的問題是$_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 )";
,因此,您的count()
函數結果為1。
這還將用foreach()
解釋您面臨的第二個問題,該函數需要一個數組,但您要提供一個字符串。
一種解決方案是對您的隱藏HTML輸入使用foreach循環,如下所示:
<?php foreach($rows as $row_driver){?>
<input type="hidden" name="row_driver[]" value="<?php echo $row_driver; ?>"/>
<?php }?>
然后,這會將您的$_POST['row_driver']
轉換為數組。
PHP文件 :
表達
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
返回信息而不是打印它。
返回值
如果給出字符串,整數或浮點數,則值本身將被打印。 如果給定數組,則值將以顯示鍵和元素的格式顯示。 類似的符號用於對象。
當return參數為TRUE時,此函數將返回一個字符串。 否則,返回值為TRUE。
print_r()
可以用作特殊的打印方法來顯示數組中的所有值以及關聯數組(對此更有用)。
關聯數組:
關聯數組是使用分配給它們的命名鍵的數組。
如果使用echo
,則將其與數組索引一起打印。 例如$row_arr[0]
或如果您用於關聯數組而不是索引,則使用key。 它可能是字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.