PHP:foreach循环结果打印时间

PHP:foreach循环结果打印时间,php,foreach,Php,Foreach,我有一个名为singles.txt的txt文件。每一行都包含输入的用户名的信息(姓名、性别…用逗号分隔),我想检查这个用户是否存在 我做了如下操作:创建一个当前用户的对象,然后将其与txt文件中的所有对象进行比较 <?php class User { public $name; public $gender; public $age; public $personality; public $FAVos; public $min;

我有一个名为singles.txt的txt文件。每一行都包含输入的用户名的信息(姓名、性别…用逗号分隔),我想检查这个用户是否存在 我做了如下操作:创建一个当前用户的对象,然后将其与txt文件中的所有对象进行比较

<?php
  class User
  {
    public $name;
    public $gender;
    public $age;
    public $personality;
    public $FAVos;
    public $min;
    public $max;
  }
  function countLine() {
      $linecount = 0;
      $file = fopen("singles.txt", "r");
  while(!feof($file)){
    $line = fgets($file);
    $linecount++;
    }
    fclose($file);
    return $linecount;
  }
  function makeCurrentUser($n) {
    $file = fopen("singles.txt", "r");
    while(!feof($file)){
      $line = fgets($file);
      $word = explode(",", $line);
      if ($word[0] == $n) {
        break;  
        fclose($file);
        }
    }
    $currUser = new User();
    $currUser-> name=$word[0];
    $currUser-> gender=$word[1];
    $currUser-> age=$word[2];
    $currUser-> personality=$word[3];
    $currUser-> FAVos=$word[4];
    $currUser-> min=$word[5];
    $currUser-> max=$word[6];
    return $currUser;
    }
    function getAllUser() {
      $file = fopen("singles.txt", "r");
      $collectionUser = array();
      $linecount= countLine();
      while(!feof($file)){
          $line = fgets($file);
          $word = explode(",", $line);
          for ($i=0; $i<= $linecount; $i++) {
             $nameUsr = $i.' user';
             $nameUsr= new User();
             $nameUsr-> name=$word[0];
             $nameUsr-> gender=$word[1];
             $nameUsr-> age=$word[2];
             $nameUsr-> personality=$word[3];
             $nameUsr-> FAVos=$word[4];
             $nameUsr-> min=$word[5];
             $nameUsr-> max=$word[6];
      array_push($collectionUser,$nameUsr);
        }   
     }
     return $collectionUser; 
    }

?>

在Anothor文件(处理来自keyborad的数据“name”)中,我调用我的函数并进行比较

<?
    $name = $_GET['name'];
        $currUser = makeCurrentUser($name);
        $collectionUser= getAllUser();
        foreach ($collectionUser as $user) {
            $common = similar_text($currUser->personality, $user->personality);
            if($currUser->gender!=$user->gender && $currUser->min <= $user->age && $currUser->max >= $user->age
                && $currUser->FAVos== $user->FAVos && $common>=2) {
            echo '<div class="match">';
                echo '<img src="files/user.jpg">';
                echo '<span>';
                echo '<ul>';
                echo '<li>'.$user->name.'</li>';
                echo '<li>'.$user->gender.'</li>';
                echo '<li>'.$user->age.'</li>'; 
                echo '<li>'.$user->personality.'</li>'; 
                echo '<li>'.$user->FAVos.'</li>';   
                echo '</span>';
                echo '</div>';
            }
?>


我发现了结果。信息技术没关系,但每个结果都打印了很多次。你能告诉我我做错了什么吗

你能澄清一下你的意思吗-什么东西在哪里被多次打印?它打印的数字似乎等于txt文件的行数我不明白这是什么意思,你能编辑这个问题并添加一个例子吗?我的问题是foreach循环中的比较结果会打印很多次OK解决了它我只初始化$Id然后激活它。谢谢你的帮助