Php 在数组中与特定条件值进行比较

Php 在数组中与特定条件值进行比较,php,arrays,Php,Arrays,我在断头之后得到阵列 while($num_rows1 = mysql_fetch_array($data_query_details1)) 现在我想检查我的特定用户id(假设这里的用户id=3)是否在数组中停留2/3(我的特定值)乘以相同的日期,然后print ok,否则print需要更多 Array ( [0] => 3 [user_id] => 3 [1] => 2014-07-18 [date(FROM_UNIXTIME(date))]

我在断头之后得到阵列

while($num_rows1 = mysql_fetch_array($data_query_details1))
现在我想检查我的特定用户id(假设这里的用户id=3)是否在数组中停留2/3(我的特定值)乘以相同的日期,然后
print ok
,否则
print需要更多

Array
(
    [0] => 3
    [user_id] => 3
    [1] => 2014-07-18
    [date(FROM_UNIXTIME(date))] => 2014-07-18
)
Array
(
    [0] => 3
    [user_id] => 3
    [1] => 2014-07-18
    [date(FROM_UNIXTIME(date))] => 2014-07-18
)
Array
(
    [0] => 4
    [user_id] => 4
    [1] => 2014-07-18
    [date(FROM_UNIXTIME(date))] => 2014-07-18
)
有什么逻辑吗

$dates = array();
$stay = false;
$userid_to_check = 3;
while($row = mysql_fetch_array($data_query_details1)){
    if($row['user_id']==$userid_to_check){
        if(in_array($row[1], $dates)){
            $stay = true;
            break;
        }
        $dates[] = $row[1];
    }
}
if($stay)echo 'ok';
else echo 'need more';
最好使用更直接的数据库选择,就像上面的答案一样。 例如,codebird提到:

$query = "select count(*) from your_table GROUP BY user_id HAVING date(FROM_UNIXTIME(date))='2014-07-18'";
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count>=2)echo 'ok';
else echo 'need more';

这将解决您的问题:

SELECT user_id, COUNT(*) FROM your_table 
WHERE DATE(FROM_UNIXTIME(date))='2014-07-18' 
GROUP BY user_id

您可以让数据库通过使用适当的查询直接给出答案。有什么理由不这么做吗?我没有足够的查询知识,所以我试着这样做@Jon