2011-02-26 40 views
1

我有對象的數組中刪除:從一個數組

$obj = array(); 

// add the new items 
$row = new stdClass(); 
$row->first = $first; 
$row->last = $last; 
$row->phone = $phone; 

$obj[] = $row; 

現在,如果我只是有$最後的價值,有沒有辦法刪除整個$行對象,而無需指定每個鍵/值? (如果它有助於理解,如果這是一個MySQL聲明它會像 「DELETE * FROM $ OBJ其中$按行>末頁= '托馬斯'」)

THX

+0

是不是要刪除$ row from $ obj ??? – Endophage

+0

我只是扔在...如果它沒有幫助澄清,然後忽略它 –

回答

1

您需要知道密鑰。但是,如果您遍歷數組,則可以找到它。

可能有一些array_*功能更簡潔的方法,但這種勾畫出來。

2

unset($row);你想?但是,如果您只是爲了節省內存而沒有必要這樣做...

+0

+1或只是'$行= NULL;' – Endophage

+0

'unset()'不立即釋放內存。 PHP中的內存在垃圾回收器認爲合適時被釋放。 –

+0

我認爲這不會取消設置數組元素,僅僅是原始對象。儘管在物理上它們可能在一段時間內成爲內存中的同一個對象(在寫入時進行復制),但它們在語義上是分離的。 –

1
foreach ($obj as $key => $value) { 
    if($obj[$key]->last == $last){ 
    unset($obj[$key]); 
    } 
} 

糟糕,我忘記格式化我的迴應作爲代碼。我是新來的! = P