php替换数组值

时间:2016-06-07 06:30:11

标签: php mysql arrays

我有以下mysql查询功能:

$query_number = 2;
$query        = "SELECT * FROM $table ORDER by date desc limit $query_number";  
$results      = mysql_query($query);    

$message['posts']    = $results;
echo json_encode($message); 
exit;

我得到一个包含多个键的对象数组:

Array
(
[0] => stdClass Object
    (
        [ID] => 4983
        [post_id] => 56357
        [date] => 2016-06-04 23:45:28          
    )

[1] => stdClass Object
    (
        [ID] => 4982
        [post_id] => 56241
        [date] => 2016-06-04 22:58:27           
    )
 )

我通过ajax将整个数组发送到js。

但是,我想将日期格式更改为"之前"并将其发送给js。

我有"前"函数,但我不确定如何定位date值并将其放回原来的位置(替换)。

任何帮助都会非常感激!

谢谢!

2 个答案:

答案 0 :(得分:2)

您需要遍历结果并调用ago函数:

<?php
$query_number = 2;
$query        = "SELECT * FROM $table ORDER by date desc limit $query_number";  
$results      = mysql_query($query);    

// Loop through results
foreach($results as $key => $row) {
    // Replace date value with ago value
    $results[$key]['date'] = ago($row['date']);
}

$message['posts']    = $results;
echo json_encode($message); 
exit;

我没有测试过,但你有这个想法。

答案 1 :(得分:1)

要替换值,您可以使用foreach并在同一地址更改变量

foreach($results as &$row) {
    // Replace date value with ago value
    $row['date'] = ago($row['date']);
}

$message['posts']    = $results;
echo json_encode($message);

如果您不想使用foreach,则可以使用array_walk函数代替foreach

array_walk($results, function(&$row){
    $row['date'] = ago($row['date']);
});