将.txt文件转换为数组并进行比较


converting .txt file into array and comparing

$eventnameentered= $_GET['eventnameentered'];
$eventnameentered= strtolower($eventnameentered);
$eventindatabase=file('eventname.txt');
if(in_array($eventnameentered,$eventindatabase)){
    echo 'Entered Event Name '.$eventnameentered.' Is Already Taken';
}else if($eventnameentered==''){
    echo 'Please Enter Name Of New Event';
}
else
{
    echo 'Event Name '.$eventnameentered.' Is Available ';
}   

事件.txt

gaming
coding
project

我正在使用 AJAX。一切正常,我只需要一些关于这个数组的帮助。

我想比较用户给出的eventname和已经存在的eventname event.txt不冲突。所以我想要数组中的event.txt。我正在将其与in_array进行比较,如上面的代码所示,但即使我插入event.tx中存在的事件,它也会显示Event name Available.我什至尝试使用get_file_contents.

空格导致if条件失败。您需要先trim空格。

$eventindatabase = file('eventname.txt');
$eventindatabase = array_map('trim', $eventindatabase);

以下是修剪空格前后var_dump($eventindatabase)的输出:

以前:

array(3) {
  [0]=>
  string(7) "gaming
"
  [1]=>
  string(7) "coding
"
  [2]=>
  string(7) "project"
}

后:

array(3) {
  [0]=>
  string(6) "gaming"
  [1]=>
  string(6) "coding"
  [2]=>
  string(7) "project"
}

如您所见,前两个元素是不同的,这将导致以下条件的计算结果为 FALSE ,从而触发 else 语句:

if(in_array($eventnameentered,$eventindatabase)) 

希望这有帮助!