我有一个需要实现的任务,简而言之,我希望能够使用 PHP 从 mySQL 中的表中读取多个日期值,然后操作这些值以获得以天为单位的日期差异,保存这些新的日期(int值)到另一个数组中以进行进一步操作(线性回归)。我的问题是我无法达到可以将从数据库检索到的初始值保存到数组中的程度,但是当我尝试操作这些值并将它们保存到第二个数组中时,它不起作用。这是我的简单代码:
$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 )
)
拜托,我真的需要一些帮助。 谢谢你 - 哈穆德
最佳答案
试试这个:
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(日期)']
。
关于php - 如何读取 PHP 数组中的多个日期值,然后将它们相减,返回 int 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980400/