我有一个文件read.txt
,上面有这样的记录
pulp_fiction
Pulp Fiction
jurassic_park
Jurassic Park
inception
Inception
我想在quest.php
中将这些文件内容读取到这样的关联数组中<?php
$quest ["pulp_fiction"] = "Pulp Fiction";
$quest ["jurassic_park"] = "Jurassic Park";
$quest ["inception"] = "Inception";
这是打开文件以在quest.php中写入的代码我需要数组部分的帮助。 THKS
<?php
$myFile = "read.txt";
$fh = fopen($myFile, 'r');
$theData = fread($fh, filesize($myFile));
$assoc_array = array();
$my_array = explode("\n", $theData);
foreach($my_array as $line)
{
$tmp = explode("\n", $line);
$assoc_array[$tmp[0]] = $tmp[1];
}
fclose($fh);
// well the op wants the results to be in $quest
$quest = $assoc_array;
?>
我将此部分代码保存为quest.php并在quiz.php中调用但是当我尝试将图像标题与实际标题匹配时,没有任何内容填充。
答案 0 :(得分:1)
可能是一种光滑的方式,但这是我的第一个想法:
$lines = file("read.txt", FILE_IGNORE_NEW_LINES);
$pairs = array_chunk($lines, 2);
foreach($pairs as $array) {
$quest[$array[0]] = $array[1];
}
需要一些var和错误检查。
答案 1 :(得分:1)
这是我的解决方案:
<?php
preg_match_all('/^(.*)\n(.*)/m', file_get_contents('read.txt'), $items);
$quest = array_combine($items[1], $items[2]);
在这里,我们使用preg_match
的正则表达式匹配行的内容,然后使用换行符,然后使用该行的内容,这样可以为我们提供两个数组,一个内容为偶数线条,一条有奇数线。
一个稍微强大的版本,它将检查仅包含小写字母数字字符和下划线的“关键”行:
<?php
preg_match_all('/^([a-z_]+)\n(.*)/m', file_get_contents('lists.txt'), $match);
$quest = array_combine($match[1], $match[2]);
答案 2 :(得分:1)
试试这段代码,我希望有这个帮助。
$lines = explode("\n", file_get_contents('file.txt'));
$quest = array();
for($i=0;$i<count($lines);$i+=2)
{
$quest[$lines[$i]] = $lines[$i+1];
}