说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])
是不可能的。
答案 0 :(得分:0)
你想要实现什么?您的示例orders.txt太简单了,您没有指定您期望的结果。 file()返回一个字符串数组,其中每个字符串都是文件中的一行(http://php.net/manual/en/function.file.php)。
也许如果你试图从每一行读取多个值(即将每一行读作数组),你应该使用fgetcsv()代替(http://php.net/manual/en/function.file.php)
答案 1 :(得分:-1)
当我检查print_r($ orders)时,来自txt的数据不存储在多维数组中,而只存储在带有key / val的普通数组中。所以你的假设是不正确的。我很难确切地知道问题是什么(语言障碍......)。你的col数也是正确的,因为里面只有1个值(我在这里得到1)。
它可能返回4(它应该是3),因为你在txt文件中有一个额外的换行符,删除最后一个空行并且它是有意义的。