将每个用户名和密码保存到一个数组中

时间:2016-05-31 18:51:36

标签: php arrays

我有一个包含以下内容的文本文件

  

用户名,密码

     

管理员,为admin123

并希望将每个用户名和密码保存到同一个数组中,使其看起来像这样

  

[0] =>用户名

     

[1] =>密码

     

[2] =>管理员

     

[3] =>为admin123

这是我目前的代码:

 $accounts = file("password.txt");

 foreach($accounts as $account) {
      $user = preg_split("/,/", $account ) ; 
 } 

 print_r( array_values( $user ));

似乎只将每行保存到数组中,然后用下一个用户名和密码覆盖它。

澄清:这是针对初学PHP课程,而不是针对实际网站。我知道密码永远不应该以明文形式存储......

3 个答案:

答案 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_splitarray_valuesexplodelist就可以完成这项工作,即:

$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 ));