簡體   English   中英

count()返回錯誤值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM