使用包含此内容的文件:
1 2 3 4 5 0
6 7 8 9 10 0
11 12 13 14 15 1
16 17 18 19 20 1
我尝试使用此代码创建2d数组并获取最后一列:
<?php
$tab = array();
$lastColumn=array();
$file = file('test.txt');
foreach ($file as $item) {
array_push($tab, explode(' ', $item));
};
foreach ($tab as $item) {
array_push($lastColumn,end($item));
};
var_dump($lastColumn);
但最后一个看起来像这样:
array(4) { [0]=> string(3) "0 " [1]=> string(3) "0 " [2]=> string(3) "1 " [3]=> string(1) "1" }
除了最后一个(字符串(1),后面没有空格)之后,所有值都有字符串(3)和空格
我需要最后一列中没有空格和字符串(1)的所有值。有人可以帮帮我吗?
答案 0 :(得分:0)
\n
代表的文件中有换行符需要删除。
尝试更改:
foreach ($file as $item) {
array_push($tab, explode(' ', $item));
};
类似于:
foreach ($file as $item) {
array_push($tab, explode(' ', str_replace('\n','',$item)));
};
答案 1 :(得分:0)
您编写的所有内容在编程中通常称为whitespace。也就是说,字符串中存在的字符与字符的方式不可见。
PHP有一个内置函数来处理这个名为trim()
的函数,其中包含所有这些字符:
此函数返回一个字符串,其中删除了空格 str的开头和结尾如果没有第二个参数,trim()将会 剥去这些字符:
“”(ASCII 32(0x20)),一个普通的空格。
“\ t”(ASCII 9(0x09)),一个标签。
“\ n”(ASCII 10(0x0A)),新行(换行符)。
“\ r”(ASCII 13 (0x0D)),回车。
“\ 0”(ASCII 0(0x00)),NUL字节。 “\ x0B”(ASCII 11(0x0B)),垂直制表符。
所以
foreach ($tab as $item) {
array_push($lastColumn,end($item));
};
变为:
foreach ($tab as $item) {
array_push($lastColumn,end(trim($item)));
};