为了账号安全,请及时绑定邮箱和手机立即绑定

如何从php中的文本文件中检索特定用户的数据

如何从php中的文本文件中检索特定用户的数据

PHP
蛊毒传说 2022-01-02 16:30:53
我有一个文本文件,它存储这样的信息。user_id cust  rating1:1,42:2,51:1,51:3,41:1,11:4,23:5,52:2,1第一个是将信息存储到文件的用户 ID 现在我想检索该特定用户的数据,例如,用户 ID 一共有五个条目,我如何检索相同的条目,请注意我我没有使用任何类型的数据库。我的 PHP 代码是这样的。<?php$_SESSION['user_id'] = '1';echo $_SESSION['user_id'];$myFile = "data.txt";$lines = file($myFile);//file in to an arrayvar_dump($lines);foreach($lines as $line){    $var = explode(':', $line, 2);    echo '</br>';    $arr[$var[0]] = $var[1];}print_r($arr); ?>这给了我这样的输出Array ( [ ] => [1] => 4,2 [2] => 2,1 [3] => 5,5 )但我想要 user1 的所有输出
查看完整描述

2 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

如果你已经有了这个: Array ( [1] => Anthony, 2 [2] => Amar, 1 [3] => Ram 5 )


您可以使用以下内容来获取所需的索引:


$users = [

     1 => 'Anthony, 2',

     2 => 'Amar, 1'

];


function getUser($users, $search) {

   foreach($users as $key => $user) {

      $user = explode(',', $user);

      if (intval($search) == intval($user[1]) || strtolower($search) == strtolower($user[0])) {

         return $user;

      }

   }

}


getUser($users, 1);

getUser($users, 'anthony');


查看完整回答
反对 回复 2022-01-02
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

foreach用下一个替换你的块:


foreach($lines as $line)

   {

       $var = explode(':', $line, 3);   // third row

       $arr[$var[0]] = empty($arr[$var[0]]) ? '' : $arr[$var[0]]; 

       $arr[$var[0]] .= (string)$var[0].':'.(string)$var[1]).' ';   

   } 

这将为您生成如下输出:


Array ( [1] => 1:1,4 1:1,5 1:3,4 1:1,1 1:4,2 [2] => 2:2,5 2:2,1 [3] => 3:5,5 )

您可以在其中使用index数组的user_id。我是说:


$id = 1; // or 2 or 3; 

echo $arr[$id]; // 1:1,4 1:1,5 1:3,4 1:1,1 1:4,2

如果您需要从代码中擦除的唯一值(没有1:或2:或3:)(string)$var[0].':'.。


因此,该行将

$arr[$var[0]] .= (string)$var[0].':'.(string)$var[1]).' ';

是下一个:

$arr[$var[0]] .= (string)$var[1]).' ';


$id = 1; // or 2 or 3; 

echo $arr[$id]; // 1,4 1,5 3,4 1,1 4,2


查看完整回答
反对 回复 2022-01-02
  • 2 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信