我有一个如下所示的 .txt 文件:
Test = 10849831 = August 6, 2013:
56cake = 0 = August 6, 2013:
Wwe = 812986192 = August 6, 2013:
我想分解上面的文件以创建一个如下所示的数组:
Array
(
[Test] => Array
(
[0] => 10849831
[1] => August 6, 2013
)
[56cake] => Array
(
[0] => 0
[1] => August 6, 2013
)
[Wwe] => Array
(
[0] => 812986192
[1] => August 6, 2013
)
)
我怎样才能做到这一点?我已经尝试过使用类似 explode(":", $data)
但我不知道如何使用它来完成我上面想要的操作。我对 PHP 还很陌生。
最佳答案
只需一点点数组迭代就可以解决问题:explode
, array_map
, trim
, isset
和foreach
。
PHP 示例
$txt = <<<DOC
Test = 10849831 = August 6, 2013:
56cake = 0 = August 6, 2013:
Wwe = 812986192 = August 6, 2013:
DOC;
$Output = array();
$Lines = explode(":", $txt);
foreach($Lines as $line) {
$Rows = array_map('trim', explode(" = ", $line));
if(!isset($Rows[0], $Rows[1], $Rows[2])) continue;
$Output[$Rows[0]] = array($Rows[1], $Rows[2]);
}
print_r($Output);
PHP 代码输出
Array
(
[Test] => Array
(
[0] => 10849831
[1] => August 6, 2013
)
[56cake] => Array
(
[0] => 0
[1] => August 6, 2013
)
[Wwe] => Array
(
[0] => 812986192
[1] => August 6, 2013
)
)
代码解释
- 使用
explode(":", $txt)
分隔行 - 循环遍历每一行,并再次使用
explode
通过=
分解每个部分 - 使用
array_map
循环每个值并删除空格 - 检查以确保我们有 3 个值
isset
,如果没有,则跳过迭代 - 将收集到的值插入输出数组
关于php - 将txt文件分解为多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218254/