为什么if不做比较?

时间:2019-11-27 16:33:47

标签: php file 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    

如果不清楚,请告诉我。我已经尝试了一切,但没有任何结果。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

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

select to_timestamp_tz('2019-11-18 4:01:29 PM +0200', 'YYYY-MM-DD HH12:MI:SS AM TZHTZM');

仅需稍加一点,值得将if (trim($val[4]) == trim($phone)) {...} 添加到对file()的呼叫中,否则您将在行末以新行结尾。