2012-12-17 233 views
0

日期我在MySQL表日期的两份名单产出如下:比较数组中的PHP

$BetDate - array(25) { [0]=> int(1355468400) [1]=> int(1355468400) [2]=> int(1355468400) [3]=> int(1355468400) [4]=> int(1355468400) [5]=> int(1355468400) [6]=> int(1355295600) [7]=> int(1355295600) [8]=> int(1355295600) [9]=> int(1355295600) [10]=> int(1355468400) [11]=> int(1355468400) [12]=> int(1355209200) [13]=> int(1355209200) [14]=> int(1355209200) [15]=> int(1355295600) [16]=> int(1355209200) [17]=> int(1355209200) [18]=> int(1355468400) [19]=> int(1355468400) [20]=> int(1355554800) [21]=> int(1355554800) [22]=> int(1355554800) [23]=> int(1355554800) [24]=> int(1355554800) } 
array(25) { [0]=> string(10) "2012-12-14" [1]=> string(10) "2012-12-14" [2]=> string(10) "2012-12-14" [3]=> string(10) "2012-12-14" [4]=> string(10) "2012-12-14" [5]=> string(10) "2012-12-14" [6]=> string(10) "2012-12-12" [7]=> string(10) "2012-12-12" [8]=> string(10) "2012-12-12" [9]=> string(10) "2012-12-12" [10]=> string(10) "2012-12-14" [11]=> string(10) "2012-12-14" [12]=> string(10) "2012-12-11" [13]=> string(10) "2012-12-11" [14]=> string(10) "2012-12-11" [15]=> string(10) "2012-12-12" [16]=> string(10) "2012-12-11" [17]=> string(10) "2012-12-11" [18]=> string(10) "2012-12-14" [19]=> string(10) "2012-12-14" [20]=> string(10) "2012-12-15" [21]=> string(10) "2012-12-15" [22]=> string(10) "2012-12-15" [23]=> string(10) "2012-12-15" [24]=> string(10) "2012-12-15" }  

$BetGameDate - array(4) { [0]=> int(1355554800) [1]=> int(1355468400) [2]=> int(1355900400) [3]=> int(1355554800) } 
array(4) { [0]=> string(10) "2012-12-15" [1]=> string(10) "2012-12-14" [2]=> string(10) "2012-12-19" [3]=> string(10) "2012-12-15" } 

下面是我的一些PHP代码:

foreach($checkit as $row1) { 
    $BetDate[] = strtotime($row1['BetDate']); 
    } 
    foreach($result as $row) { 
    $BetGameDate[] = strtotime($row['GameDate']); 
    } 
    for($i=0; $i<=$count; $i++) { 
if($BetDate==$BetGameDate[$i]) { 
    echo "Hello2"; 
    } 
} 

不过,我想喜欢按照以下方式比较日期:我想循环访问$BetGameDate,看看$BetDate中的任何日期是否与$BetGameDate的第i个选择相匹配。我的代码没有回显结果,真正令我困惑的是,当我在if语句中将$BetDate更改为$BetDate[$i]时,它将两次回显Hello25,当只有一个选择应该相等时(数组中的第二个值,第一个位置)。有没有人有关于如何比较$BetGameDate[$i]$BetDate[]中的所有日期的建议?

任何帮助,非常感谢!

回答

0

这很简单:

<?php 
$array1 = array('1', '2', '3'); 
$array2 = array('0', '2', '0'); 
$length = count($array1); 

for ($i = 0; $i < $length; $i++) { 
    $key = array_search($array1[$i], $array2); 

    if ($key != null && $key > 0) { 
     echo 'HELLO 2'; 
    } 
} 
?> 

只要改变你的$ BetDate至$ BetDate [$ i]中。

+0

都能跟得上......你一定要为循环做了一倍。这只是将每个索引与彼此进行比较,但如果索引不是相同的顺序,则失败。 – Theolodis

+0

哎呀,你是对的!改变了它;) –

0

不确定为什么你要在BetDate的for循环中迭代GameDate中的结果列表。

我想你可能想要做的:

foreach($checkit as $row1) { 
    $BetDate[] = strtotime($row1['BetDate']); 
} 
foreach($result as $row) { 
    $BetGameDate[] = strtotime($row['GameDate']); 
} 
$matchArray = array_intersect($BetDate, $BetGameDate); 
0
for($BetGameDate as $b) { 
    for($BetDate as $bet){ 
     if($b == $bet) { 
      echo "Hello2"; 
     } 
    } 
} 

这应该与每个BetGameDate的比较每个BetDate的。但我猜array_intersect更容易实现。

编辑:刚才看到BetDate心不是只要BetGameDate