如何读取PHP数组中的多个日期值,然后减去它们,返回一个int值

时间:2014-11-17 19:27:28

标签: php mysql arrays date

我有一个需要实现的任务,简而言之,我希望能够使用PHP从mySQL中的表中读取多个日期值,然后操纵这些值以获取日期差异,保存这些新的天数(int值)进入另一个数组进行进一步操作(线性回归)。我的问题是我无法达到可以将从DB检索的初始值保存到数组中的程度,但是当我尝试操作这些值并将它们保存到第二个数组时,它不起作用。这是我的简单代码:

$result = mysql_query("SELECT TO_DAYS(date) FROM ordering WHERE id=1",$conn);
$num_rows = mysql_num_rows($result);
// mysql_query($result,$conn) or die(mysql_error();

//echo $num_rows;


$data = array();
$days=array();

while (($row = mysql_fetch_array($result, MYSQL_ASSOC)) !== false){
  $data[] = $row; // add the row in to the results (data) array
}

print_r($data); // print result


//This part is not working

for ($x=$num_rows;$x>0;$x--){
$days[x]=(($data[$x])-($data[$x-1]));
}
print_r($days);



mysql_close($conn);

如果我在代码中没有包含for循环,我会在屏幕上看到如下输出:

Array ( 
    [0] => Array ( [TO_DAYS(date)] => 735599 ) 
    [1] => Array ( [TO_DAYS(date)] => 735630 ) 
    [2] => Array ( [TO_DAYS(date)] => 735658 ) 
    [3] => Array ( [TO_DAYS(date)] => 735689 ) 
    [4] => Array ( [TO_DAYS(date)] => 735735 ) 
    [5] => Array ( [TO_DAYS(date)] => 735780 ) 
    [6] => Array ( [TO_DAYS(date)] => 735811 )
)

我真的需要一些帮助。 谢谢你 - 哈穆德

1 个答案:

答案 0 :(得分:0)

试试这个:

for ($x = $num_rows - 1; $x > 0; $x--) {
    $days[$x] = $data[$x]['TO_DAYS(date)'] - $data[$x-1]['TO_DAYS(date)'];
}

此处,$data[$x]是一个数组本身,其核心为TO_DAYS(date),因此您需要使用$data[$x]['TO_DAYS(date)']获得所需的值。