2016-06-07 150 views
1

PHP替换数组值

$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。

但是,我想将日期格式更改为“ago”并将其发送给js。

我有“前”功能,但我不知道如何定位date值并将其放回原来的位置(替换)。

任何帮助将不胜感激!

谢谢!

回答

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那么您可以在地方foreach使用array_walk功能:

array_walk($results, function(&$row){ 
    $row['date'] = ago($row['date']); 
}); 
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; 

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

+0

@steveKim你在使用'mysql_fetch_object'吗?在我的例子中,它将与'mysql_fetch_array'一起工作 –