count, возвращающий размер первой ячейки в массиве, а не размер всего массива

У меня есть массив $all_orders который содержит массивы, $ temp_array содержит каждую итерацию после взрыва строки, состоящей из 8 слов, а $handle состоит из 3 lines в файле:

 while(!feof($handle)) { $order=fgets($handle); $temp_array=explode(",",$order); array_push($all_orders,$temp_array); } в while(!feof($handle)) { $order=fgets($handle); $temp_array=explode(",",$order); array_push($all_orders,$temp_array); } 

Теперь, когда я пытаюсь подсчитать $all_orders массива $all_orders (который должен быть 3), я получаю просто 8:

 echo count($all_orders);// display 8 

почему я не получил 3?

РЕДАКТИРОВАТЬ:

Вот результат, который я получил при попытке распечатать содержимое массива:

 Array ( [0] => Array ( [0] => ) [1] => Array ( [0] => ) [2] => Array ( [0] => 1 [1] => 1 [2] => chaine.com [3] => chaine [4] => chaine [5] => chaine [6] => chaine [7] => chaine ) [3] => Array ( [0] => ) [4] => Array ( [0] => 2 [1] => 1 [2] => chaine@fudd.com [3] => chaine. [4] => chaine [5] => chaine [6] => chaine [7] => chaine ) [5] => Array ( [0] => ) [6] => Array ( [0] => 3 [1] => 2 [2] => chaine@bunny.com [3] => chaine. [4] => chaine [5] => chaine [6] => chaine [7] => chaine ) [7] => Array ( [0] => ) ) 

У вас есть одна из двух проблем:

  • В вашем файле есть несколько пробелов.
  • PHP смущается стилем конца строки (например, \r\n на платформе, которая просто использует \n )

Независимо от того, что проблема на самом деле, это должно исправить это:

 while(!feof($handle)) { // Evaluating the trimmed line as a bool will effectively skip blank lines if (!trim($order = fgets($handle))) continue; $all_orders[] = explode(',', $order); }