php数组,时间戳和循环

时间:2015-05-28 10:54:46

标签: php arrays

我有以下代码。 $ results数组输出如此

[1] => stdClass Object ( [ID] => 4429 [post_date_gmt] => 2015-03-05 11:04:18 )

在第二个循环中,我计算今天时间与过期日期之间的差异。在IF语句中返回正确的结果,但是为了到达此处,我已经丢失了原始$results数组中的ID。如果$difference < 72

,我需要根据ID更改数据库中的值

所以问题是 - 是否可以在保持ID和post_date_gmt的同时进入IF语句?

<?php
global $wpdb;
$results = $wpdb->get_results(
"SELECT ID, post_date_gmt
FROM wp_posts
WHERE post_type = 'job_listing'"
); 
print_r($results);
$jobids = array();
$jobdates = array();
foreach($results as $oneitem) {
    $jobids[]=$oneitem->ID;
    $jobdates[]=$oneitem->post_date_gmt;
}

foreach($jobdates as $value) {
    $postdate = $value;
    $today = time();
    $postdate = strtotime($postdate);
    //echo $postdate;
    $difference = round(abs($today-$postdate)/60/60);
    if($difference < 72) {
        echo $difference;
        //change a value in the database where the id matches the id from the $results array
    }
}
?>

感谢您的任何建议!

1 个答案:

答案 0 :(得分:0)

在构建阵列时,为什么不使用作业ID作为jobdates数组的键?

foreach($results as $oneitem) {
    $jobdates[$oneitem->ID]=$oneitem->post_date_gmt;
}

然后当你为第二个foreach循环调用该数组时,也可以调用该键foreach($jobdates as $key => $value),它可以使用并正确关联。