此代码上周有效,我不记得最近更改此代码,但由于某种原因,它今天停止了工作。
我已经缩小了这个问题,但我对此感到困惑。基本上,$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警报中看到
我的问题是什么?
答案 0 :(得分:0)
基于PHP文档,如果数组不可数,则sizeOf(Count的别名)返回1.
http://php.net/manual/en/function.count.php
返回array_or_countable中的元素数。如果是参数 不是数组,也不是具有已实现的Countable接口的对象, 1将被退回。如果是array_or_countable,则有一个例外 NULL,将返回0。
但是从那开始,在你的第二个ECHO上,你显示的是sizeOff或者sizeoff的结果,那就是一个数字 伪: a = count(&#34; a&#34;,&#34; b&#34;,&#34; c&#34;) a应为3 ECHO计数(a) ECHO显示1,因为(a)是单个元素