PHP:foreach循环结果打印时间
我有一个名为singles.txt的txt文件。每一行都包含输入的用户名的信息(姓名、性别…用逗号分隔),我想检查这个用户是否存在 我做了如下操作:创建一个当前用户的对象,然后将其与txt文件中的所有对象进行比较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;
<?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然后激活它。谢谢你的帮助