Php 从数组中删除
我有一个对象数组:Php 从数组中删除,php,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$o
$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,其中$row->last='Thomas'
thx是未设置的$row;你想要什么?但是,如果只是为了节省内存,就不需要这样做。是unset$row;你想要什么?但是如果你只是为了节省内存,就没有必要这样做。你需要知道钥匙。但是,如果遍历数组,您可以找到它
/* 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;
}
}
有些数组函数可能有一种更简洁的方法,但这就说明了这一点。您需要知道关键点。但是,如果遍历数组,您可以找到它
/* 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;
}
}
foreach ($obj as $key => $value) {
if($obj[$key]->last == $last){
unset($obj[$key]);
}
}
对于一些数组函数,可能有一种更简洁的方法,但这就说明了这一点
foreach ($obj as $key => $value) {
if($obj[$key]->last == $last){
unset($obj[$key]);
}
}
哎呀,我忘了将我的响应格式化为代码。我是新来的=P
哎呀,我忘了将我的响应格式化为代码。我是新来的=P你的意思是从$obj中删除$row???我只是把它放进去了…如果它无助于澄清,那么忽略它。你的意思是从$obj中删除$row???我只是把它放进去了…如果它无助于澄清,那么忽略它。设置不会立即释放内存。在PHP中,当垃圾收集器认为合适时,内存会被释放。我认为这不会取消数组元素的设置,只会取消原始对象的设置。虽然它们在物理上可能暂时是内存中的同一对象,但在这一点上,它们在语义上是分离的。unset不会立即释放内存。在PHP中,当垃圾收集器认为合适时,内存会被释放。我认为这不会取消数组元素的设置,只会取消原始对象的设置。虽然它们在物理上可能暂时是内存中的同一对象,但在这一点上,它们在语义上是分离的。