PHP sizeof() returns 1 错误
PHP sizeof() returns 1 incorrectly
此代码上周有效,我不记得最近更改过此代码,但由于某种原因它今天停止工作。
我已经缩小了问题的范围,但我对此感到困惑。基本上,$fields = sizeof($dataArray[$r]);
产生 $fields = 1
,但如下图所示,ECHO json_encode($dataArray);
表明应该观察到 $fields = 9
。
$dataArray = $_POST['array'];
$validRows = array();
$invalidRows = array();
echo sizeof($dataArray); // correct output
for($r = 0; $r < sizeof($dataArray); $r++){
$fields = sizeof($dataArray[$r]); // $fields is not what I expect
ECHO json_encode($dataArray); // see image below (sent to javaScript alert)
ECHO sizeof($fields); // returns 1
...
}
ECHO json_encode($dataArray);
出现在 javaScript 警报中
我的问题是什么?
基于 PHP 文档,sizeOf(Count 的别名)returns 1 如果数组不可数。
http://php.net/manual/en/function.count.php
Returns the number of elements in array_or_countable. If the parameter
is not an array or not an object with implemented Countable interface,
1 will be returned. There is one exception, if array_or_countable is
NULL, 0 will be returned.
但是除此之外,在你的第二个 ECHO 上,你显示的是 sizeOff 的结果 sizeoff ,那将是一个数字
伪:
a = count("a","b","c")
a 应该是 3
ECHO 计数(a)
ECHO 显示 1,因为 (a) 是单个元素
此代码上周有效,我不记得最近更改过此代码,但由于某种原因它今天停止工作。
我已经缩小了问题的范围,但我对此感到困惑。基本上,$fields = sizeof($dataArray[$r]);
产生 $fields = 1
,但如下图所示,ECHO json_encode($dataArray);
表明应该观察到 $fields = 9
。
$dataArray = $_POST['array'];
$validRows = array();
$invalidRows = array();
echo sizeof($dataArray); // correct output
for($r = 0; $r < sizeof($dataArray); $r++){
$fields = sizeof($dataArray[$r]); // $fields is not what I expect
ECHO json_encode($dataArray); // see image below (sent to javaScript alert)
ECHO sizeof($fields); // returns 1
...
}
ECHO json_encode($dataArray);
出现在 javaScript 警报中
我的问题是什么?
基于 PHP 文档,sizeOf(Count 的别名)returns 1 如果数组不可数。
http://php.net/manual/en/function.count.php
Returns the number of elements in array_or_countable. If the parameter is not an array or not an object with implemented Countable interface, 1 will be returned. There is one exception, if array_or_countable is NULL, 0 will be returned.
但是除此之外,在你的第二个 ECHO 上,你显示的是 sizeOff 的结果 sizeoff ,那将是一个数字 伪: a = count("a","b","c") a 应该是 3 ECHO 计数(a) ECHO 显示 1,因为 (a) 是单个元素