PHP sizeof()返回1错误

时间:2015-09-29 20:02:11

标签: php sizeof

此代码上周有效,我不记得最近更改此代码,但由于某种原因,它今天停止了工作。

我已经缩小了这个问题,但我对此感到困惑。基本上,$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警报中看到

dropped

我的问题是什么?

1 个答案:

答案 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)是单个元素