2011-06-05 16 views
1

我有一個字段以下值從MySQL數據庫確定在陣列中的所有值都等於

$rec1="4/1 @ 4p, 4/7 @ 4p, 4/8 @ 4p, 4/14 @ 4p, 4/15 @ 4p, 4/22 @ 4p, 4/28 @ 4p "; 
$rec2="4/1 @ 4p, 4/7 @ 7p, 4/8 @ 4p, 4/14 @ 4p, 4/15 @ 4p, 4/22 @ 4p, 4/28 @ 4p "; 

我需要確定所有的時間值是否相同,如果是隻返回單個時間值,否則返回整個字符串。 在上面的兩個記錄中,我希望返回值爲 - $rec1=4p(所有時間都相等,不關心日期) $rec2= unchanged從上面的原始$rec2以來,因爲至少有一個時間值不同。

+2

,而不是把所有的信息合併到一列,你應該創建相關型號的新表記錄並使用datetimestamp或至少一個mysql [dattime格式](http://dev.mysql.com/doc/refman/5.1/en/datetime.html) – mcgrailm 2011-06-05 07:34:32

回答

0

二者必選其一array_uniquearray_count_values

1

這給一個鏡頭:

$rec1="4/1 @ 4p, 4/7 @ 4p, 4/8 @ 4p, 4/14 @ 4p, 4/15 @ 4p, 4/22 @ 4p, 4/28 @ 4p "; 
$rec2="4/1 @ 4p, 4/7 @ 7p, 4/8 @ 4p, 4/14 @ 4p, 4/15 @ 4p, 4/22 @ 4p, 4/28 @ 4p "; 

function wtf($over) { 
    $split = split(",",$over); 
    $times = array(); 
    foreach ($split as $schedule) { 
     $parts = split("@",$schedule); 
     $times[] = trim($parts[1]); 
    } 
    $times = array_unique($times); 
    if (count($times) == 1) return $times[0]; 
    return $over; 
} 

echo wtf($rec1); 
echo "<BR>"; 
echo wtf($rec2); 

經過驗證的工作:http://gfosco.kodingen.com/6241557.php

相關問題