Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中删除数组元素?_Php_Arrays - Fatal编程技术网

如何在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);
        ?>