如何在php中删除数组元素?
我有一个数组: 阵列:如何在php中删除数组元素?,php,arrays,Php,Arrays,我有一个数组: 阵列: Array ( [0] => Array ( [name] => point [visibility] => ) [1] => Array ( [name] => php_first_table [visibility] => 1 ) [2] => Array ( [name] => ohz
Array
(
[0] => Array
(
[name] => point
[visibility] =>
)
[1] => Array
(
[name] => php_first_table
[visibility] => 1
)
[2] => Array
(
[name] => ohz
[visibility] => 1
)
)
现在我想查找并删除带有name=ohz
的元素:
for($i=0;$i<count($arrays);$i++){
if(array_search("ohz",$arrays[$i])){
unset($arrays[$i]);
}
}
print_r($arrays);
为什么php\u first\u表没有ohz
被删除?试试看
for($i=0;$i<count($arrays);$i++){
if($arrays[$i]['name'] == 'ohz')){
unset($arrays[$i]);
}
}
print_r($arrays);
对于PHP中的($i=0;$i),有以下几种方法:
$arrays = array_filter($arrays, function($item)
{
return !(array_key_exists('name', $item) && $item['name']=='ohz');
});
试试这个:
<?php
$arr_var = Array
(
Array('name' => 'point','visibility' => ''),
Array('name' => 'php_first_table', 'visibility' => 1),
Array('name' => 'ohz', 'visibility' => 1)
);
foreach($arr_var as $key => $value)
{
if($value['name'] == 'ohz'){
unset($arr_var[$key]);
}
}
echo '<pre>';
print_r($arr_var);
?>
工作很好
- 谢谢
代码应该可以正常工作。你能提供一个具有这种行为的完整程序吗?@Jon我现在检查一下,谢谢你(我把它和其他东西弄混了?),公平地说,你自己更改内部数组指针(例如,通过在循环内调用reset
)是有问题的。但删除项是可以的。@Jon你说得对,我错过了数组指针(显然这与本例无关)。对不起,最好休息一下。。再次感谢!
<?php
$arr_var = Array
(
Array('name' => 'point','visibility' => ''),
Array('name' => 'php_first_table', 'visibility' => 1),
Array('name' => 'ohz', 'visibility' => 1)
);
foreach($arr_var as $key => $value)
{
if($value['name'] == 'ohz'){
unset($arr_var[$key]);
}
}
echo '<pre>';
print_r($arr_var);
?>