1

一个名为的数据库表users有一个列timemarks

timemark字段看起来像这样.. 11:00:00, 13:45:00, 17:00:00, 18:25:00(每个用户的时间标记不同)

我的 php 脚本应该列出具有指定时间标记的用户。

查询:(SELECT * FROM ('users')查询结果返回给$users

环形:

  1. 遍历用户
  2. $timemarks_arr通过使用拆分时间标记字符串为每个用户创建数组str_getcsv
  3. 回显具有指定时间标记值的用户
foreach ($users as $user): 

   $timemarks_arr = str_getcsv($user->timemarks); //split time-marks by comma and create array

    if (in_array("17:00:00", $timemarks_arr)) //users with specified time-mark
    {                               
        echo $entry->username . "<br />";
    }

endforeach;

出于某种原因,它只回显了 2 个用户,但有更多用户使用 time-mark 17:00:00。有谁知道为什么?

4

1 回答 1

4

它不会匹配诸如17:00:00的值,因为有一个前导空格。

试试这个去除字符串开头和结尾的所有空格:

$timemarks_arr = array_map( "trim", str_getcsv($user->timemarks)); //split time-marks by comma and create array
于 2012-06-04T02:56:51.253 回答