Этот код работал на прошлой неделе, и я не помню, чтобы недавно менял этот код, но по какой-то причине он перестал работать сегодня.
Я сузил проблему, но я запутался в этом. В принципе, $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) возвращает 1, если массив не исчисляется.
http://php.net/manual/en/function.count.php
Возвращает количество элементов в array_or_countable. Если параметр
не массив или не объект с реализованным интерфейсом Countable,
1 будет возвращен. Есть одно исключение, если array_or_countable
NULL, 0 будет возвращено.
Но, судя по всему, на вашем втором ECHO вы отображаете sizeOff из результата sizeoff, который будет одним числом
псевдо:
a = count («a», «b», «c»)
должно быть 3
ECHO count (a)
ЭХО Дисплей 1, так как (а) является одним элементом
Других решений пока нет …