1

orders.txtに含まれていると言います

hello
hello
hello

コード:

<?php
  $orders = file("orders.txt");

  $row_count = count($orders);

  for ($row = 0; $row < $row_count; $row++) {
        $col_count = count($orders[$row]);

        for ($col = 0; $col < $col_count; $col++) {
            echo $orders[$row][$col];

        }
  }

?>

ここでのエラーの原因はcount($orders[$row])、この配列の要素の総数が返されないことであることがわかりました。

.txtのテキストファイルは多次元配列ですよね?

多次元配列を作成する場合、count()を使用して、多次元配列内の各配列要素の数を取得できます。

しかし、ここでは.txtファイルから読み取っています。多次元配列だと思います。

私の質問:

行数は取得しますが、列数は取得しません。
私はstrlen($orders[$row])代わりにできることを知っていますが、なぜそれcount($orders[$row])は不可能です。

4

2 に答える 2

0

何を達成しようとしていますか。あなたの例の orders.txt は単純すぎて、期待する結果を指定していません。file() は、各文字列がファイル (http://php.net/manual/en/function.file.php) の行である文字列の配列を返します。

おそらく、各行から複数​​の値を読み取ろうとしている (つまり、各行を配列として読み取ろうとしている) 場合は、代わりに fgetcsv() を使用する必要があります (http://php.net/manual/en/function.file.php)。

于 2012-09-19T09:08:46.847 に答える
-1

print_r($orders) をチェックすると、txt からのデータは多次元配列ではなく、key/val を持つ単純な配列に格納されます。したがって、あなたの仮定は正しくありません。問題が何であるかを正確に理解するのに苦労しています(言語の壁...)。内部には値が 1 つしかないため、列数も正しいです (ここでは 1 を取得します)。

txt ファイルに余分な改行文字があるため、おそらく 4 が返されます (3 になるはずです)。最後の空の行を削除すると、意味があります。

于 2012-09-19T09:06:07.147 に答える