2

我有数组:

数组:

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);

输出:

Array
(
[0] => Array
    (
        [name] => point
        [visibility] => 
    )

[2] => Array
    (
        [name] => ohz
        [visibility] => 1
    )

)

为什么php_first_table没有ohz被删除?

4

3 回答 3

3

在 PHP 中有array_filter()

$arrays = array_filter($arrays, function($item)
{
   return !(array_key_exists('name', $item) && $item['name']=='ohz');
});
于 2013-10-25T10:40:00.810 回答
2

试试喜欢

for($i=0;$i<count($arrays);$i++){
    if($arrays[$i]['name'] == 'ohz')){
        unset($arrays[$i]);
    }
}
print_r($arrays);
于 2013-10-25T10:38:19.707 回答
0

试试这个:

<?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);
        ?>

工作正常。

  • 谢谢
于 2013-10-25T11:50:23.123 回答