我正在尝试将用户/传递txt文件转换为数组,我尝试使用foreach,explode,reg_split执行此操作,但没有以正确的方式工作。
还应跳过空行...
示例文本文件:
username1
password1
username2
password2
username3
password4
示例数组:
array(
$username1 => $password1,
$username2 => $password2
)
答案 0 :(得分:3)
从连续的行创建一对数组,然后将键列与值列组合在一起:
$chunks = array_chunk(
file('userpass.txt', FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES),
2
);
$users = array_combine(
array_column($chunks, 0),
array_column($chunks, 1)
);
<强>解释强>
$chunks
是一个数组数组:每个内部数组都有两个元素:#0是用户名(第一行),#1是密码(第二行)。使用file
跳过空行并删除尾随的新行可以使这段代码变得简单,但不能防止子弹。
$users
)并将它们指向所有密码(索引0
)来生成 1
。
您可以通过$chunks
上的循环完成相同操作。但是,我更喜欢这种方法,因为所有循环都在引擎内部处理,在那里它的性能稍微高一些。
答案 1 :(得分:1)
将文件拆分为一个数组,然后将它们组合成一个带键值对的新数组
$file = file("usernames.txt", FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES);
$array = [];
for($i = 0; $i < count($file) - 1; $i++){
$array[$file[$i]] = $file[$i + 1];
}
答案 2 :(得分:-3)
我必须考虑一下,但我知道你可以使用php的file()方法将文件读入数组。
$var = file("myFile.txt", FILE_SKIP_EMPTY_LINES);