我有一个包含以下内容的文本文件
用户名,密码
管理员,为admin123
并希望将每个用户名和密码保存到同一个数组中,使其看起来像这样
[0] =>用户名
[1] =>密码
[2] =>管理员
[3] =>为admin123
这是我目前的代码:
$accounts = file("password.txt");
foreach($accounts as $account) {
$user = preg_split("/,/", $account ) ;
}
print_r( array_values( $user ));
似乎只将每行保存到数组中,然后用下一个用户名和密码覆盖它。
澄清:这是针对初学PHP课程,而不是针对实际网站。我知道密码永远不应该以明文形式存储......
答案 0 :(得分:2)
使$user
成为一个数组,并使用[]
表示法为其附加值。
$accounts = file("password.txt");
$user = array();
foreach($accounts as $account) {
list($name, $pass) = preg_split("/,/", $account );
$user[] = $name;
$user[] = $pass;
// Or use array_push($user, preg_split("/,/", $account ));
}
print_r( array_values( $user ));
澄清:要在数组中设置特定键,语法为$var["key"]
,省略键参数PHP将$var[]
视为追加/推送,并将值附加到数组的末尾{ {1}}。
答案 1 :(得分:1)
不需要preg_split
或array_values
,explode
和list
就可以完成这项工作,即:
$accounts = file("password.txt");
foreach($accounts as $account) {
list($user[], $user[]) = explode(",", $account) ;
}
print_r($user);
答案 2 :(得分:-2)
您的代码正在覆盖用户变量。声明一个类似下面代码的用户数组。
$accounts = file("password.txt");
foreach($accounts as $account) {
$user[] = preg_split("/,/", $account ) ;
}
print_r( array_values( $user ));