为什么 if 不做比较?

Why the if doesn't do the comparison?

我试图通过 if 语句比较两个数字,但它不起作用。 一个数字来自 .txt 文件中的数据库。

这是号码来源的数据库:

Number of registrations: 64
50|name|surname|email|12412412
61|name|surname|email|07802634202 

这是脚本:

$phone = "07802634202";

// Get th file from the database and convert it in an array
$database = file("database.txt", FILE_SKIP_EMPTY_LINES);
// Get the lenght of the database "Rows"
$database_length = count($database);

// Transform  in an array the string inside each row and save them in a variable 
for($a = 1; $a < $database_length; $a++) {

  $data[$a] = explode("|", $database[$a]);
}

// Check if the last variable 'Number' in a row is equal to $phone 
foreach($data as $key => $val) {

  echo "Database val: " . $val[4];
  echo "Phone val: " . $phone;
  // If it's equal print yep otherwise nope
  if ($val[4] == $phone) { 

    echo "\n yep \n"; 
  } else { 

    echo "\n nope \n";
  }
}

这是控制台打印的内容:

Database val: 12412412                                                                                                                                          
Phone val: 07802634202                                                                                                                                          
 nope                                                                                                                                                           
Database val: 07802634202                                                                                                                                       
Phone val: 07802634202                                                                                                                                          
 nope    

如果有什么不清楚的地方,请告诉我。我什么都试过了都没有结果。

感谢您的帮助:)

由于您的数据来自各种来源,因此总是值得 trim填写字段以确保删除任何前导或尾随空格。

if (trim($val[4]) == trim($phone)) {...}

只是一个小小的补充,值得将 FILE_IGNORE_NEW_LINES 添加到对 file() 的调用中,否则您将在行尾以新行结尾。