У меня есть массив $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] => ) )
У вас есть одна из двух проблем:
\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); }