php从对象中删除元素

时间:2016-02-13 20:27:07

标签: php

所以,我有以下数据库结果:

Array
(
[0] => stdClass Object
    (
        [id] => 1
        [user] => 1           
        [img] => 2016/02/img_8488.jpg
        [url] => /p=?44           
        [sent_date] => 2016-02-13 00:00:00
    )

[1] => stdClass Object
    (
        [id] => 2
        [user] => 185                     
        [img] => 
        [url] => /?p=54         
        [sent_date] => 2016-02-06 00:00:00
    )

如何从查询结果中删除[id][sent_date]

我不确定我是否使用未设置权。

unset($results[0]['id']); 
$reindex = array_values($results); 
$objectarray = $reindex; 

2 个答案:

答案 0 :(得分:1)

使用unset($results[0]->id);unset($results[0]->sent_date)代替它,它应该有用。如果要在所有数组对象中执行此操作:

for($i = 0; $i<sizeof($results); $i++)
{
    unset($results[$i]->id);
    unset($results[$i]->sent_date);

}

答案 1 :(得分:1)

您可以创建新数组,而不是删除或取消设置;

$i = 0;
$newResult = array();
foreach($result as $value){
$newResult[$i]["user"] = $value->user;
$newResult[$i]["img"] = $value->img;
$newResult[$i]["url"] = $value->url;
$i++;
}

print_r($newResult);

$newResult将返回新数组,原始数组保持不变,如果需要,可以使用它。

或者必须删除索引,而不是在foreach循环中使用unset:

unset($value->id); 
unset($value->sent_date);

旁注

另请注意,您不能将其用作$value["id"],因为它的属性不是数组索引。