我正在从.txt中提取文本,我将其展开然后重新展开,以便可以将其存储为数组。当我在第二次爆炸后使用print_r时,它输出一个带有第四个索引位置的数组,而该数组应该只有0 1 23。为什么有什么想法? 感谢您的任何帮助,谢谢。
PHP
list($title, $author, $publisher, $isbn) = explode('*', $line);
print_r($line); //outputs a string
$books = explode('*', $line);
echo "<br>";
print_r($books); //outputs array with extra index position.
输出样本
Array ( [0] => Business 101 [1] => John Smith[2] => 2002-07-18 [3] => 1-444-2589-x [4] => )
.txt文件中的行示例
Business 101*John Smith*2002-07-18*1-444-2589-x*
答案 0 :(得分:1)
请分享 $ line 的内容,以便我们为您提供帮助。
我想只是一种解释:$ line具有您期望的更多值。
如果您从文件(例如CSV文件)中导入数据,这是全面的。
因此,请检查是否存在以下内容:
BookName*Author*PublishDate*ISBN*
您看到最后一个*吗?这是问题。
爆炸函数读取最后一个*,并在数组中创建另一个字段。
如果要解决此问题,可以删除最后一个*,或仅对爆炸函数传递一个限制(3是数字,请尝试)。
array explode(string $delimiter, string $string, int $limit);
希望它对您有帮助。
最诚挚的问候。