Triển khai của tôi:
function searchAndDestroy(&$a, $key, $val){
foreach($a as $k => &$v){
if(is_array($v)){
$r = searchAndDestroy(&$v, $key, $val);
if($r){
unset($a[$k]);
}
}elseif($key == $k && $val == $v){
return true;
}
}
return false;
}
searchAndDestroy($arr, 'text', 'a');
Để kiểm tra nó:
<pre><?php
function searchAndDestroy(&$a, $key, $val){
foreach($a as $k => &$v){
if(is_array($v)){
$r = searchAndDestroy(&$v, $key, $val);
if($r){
unset($a[$k]);
}
}elseif($key == $k && $val == $v){
return true;
}
}
return false;
}
$arr = array(array('text'=>'a','height'=>'30'),array('text'=>'k','height'=>array('text'=>'a','height'=>'20')));
var_dump($arr);
searchAndDestroy($arr, 'text', 'a');
var_dump($arr);
?></pre>
Chức năng này thực hiện nó một cách đệ quy.
Vì vậy, bạn wan't để xóa phần còn lại của một 'parent' mảng chỉ có nút đầu tiên từ mảng 'parent'? –
Hãy tưởng tượng mảng tiếp tục như, [0], [1], [2], [3] ... Tôi sẽ loại bỏ, hoặc dịch chuyển, [0] ra. – Andres