从数组中删除

时间:2011-02-26 00:29:53

标签: php

我有一个对象数组:

$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

3 个答案:

答案 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