2011-02-26 10 views
1

から削除します。私は最後の$の価値を持っている場合は、私はオブジェクトの配列を持つ配列

$obj = array(); 

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

$obj[] = $row; 

さて、各キー/値を指定せずに全体の$行オブジェクトを削除する方法があります?

THX

+0

$ objから$ rowを削除しますか? – Endophage

+0

私はちょうどそれを投げました...それが明らかにならないなら、それを無視してください。 –

答えて

1

キーを知る必要があります。しかし、配列を反復処理すれば見つけることができます。

array_*機能の一部とterserアプローチがあるかもしれませんが、これはそれをレイアウト。

2

は何unset($row);です(それが理解するのに役立ちます場合は、MySQLの声明だった場合、 "$ * FROM DELETE OBJ WHEREます$ row->最後= 'トーマス" のようなものになるだろう)欲しいです?しかし、メモリを節約するためにそれをやっているだけなら、それを行う必要はありません...

+0

+1または単に '$行=ヌル; – Endophage

+0

' unset() 'はすぐにメモリを解放しません。ガベージコレクタが適切であると判断した場合、メモリはPHPで解放されます。 –

+0

私はこれが配列要素を元に戻すことはないと考えています。物理的には、しばらくの間、メモリ内の同じオブジェクト(コピーオンライト)が意味的に分離しているかもしれませんが。 –

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

私はコードとして自分の応答を書式設定するのを忘れていました。私はここに新しい! = P

関連する問題