我有一个对象数组:
$obj = array();
// add the new items
$row = new stdClass();
$row->first = $first;
$row->last = $last;
$row->phone = $phone;
$obj[] = $row;
现在,如果我只有$ last的值,有没有办法删除整个$ row对象而不指定每个键/值? (如果它有助于理解,如果它是一个mysql语句,它将类似于“DELETE * FROM $ obj WHERE $ row-> last ='Thomas'”)
THX
答案 0 :(得分:2)
unset($row);
你想要的是什么?但如果您只是为了节省内存而没有必要这样做......
答案 1 :(得分:1)
你需要知道钥匙。但是,如果您遍历数组,则可以找到它。
/* Your original code: */
$obj = array();
// add the new items
$row = new stdClass();
$row->first = $first;
$row->last = $last;
$row->phone = $phone;
$obj[] = $row;
/* My addition: */
$theOneToDelete = $last;
foreach ($obj as $key => $row) {
if ($row->last == $theOneToDelete) {
unset($obj[$key]);
break;
}
}
对于某些array_*
函数,可能有一种更简洁的方法,但这就解决了这个问题。
答案 2 :(得分:1)
foreach ($obj as $key => $value) {
if($obj[$key]->last == $last){
unset($obj[$key]);
}
}
糟糕,我忘了将响应格式化为代码。我是新来的! = P