今天遇到有人问怎么查找二维数组中是否存在某个值,并对该值所在的数组进行删除,需要的可以参考一下

示例二维数组:

$arr=array(
    2 => array(
        'catid' => 2,
        'catdir' => 'notice',
    ),
    5 => array(
        'catid' => 5,
        'catdir' => 'subject',
    ),
    6=> array(
        'catid' => 6,
        'catdir' => 'news'
    )
);

查找数组方法:

function findVal($arr,$dir){
    foreach($arr as $key=>$val){
    if(in_array($dir,$val))
        return $key;
    }
}

删除二维数组中某个key值

/**
* 根据key删除数组中指定元素
* @param  array  $arr  数组
* @param  string/int  $key  键(key)
* @return array
 */
function array_remove_by_key($arr, $key){
        if(!array_key_exists($key, $arr)){
            return $arr;
        }
        $keys = array_keys($arr);
        $index = array_search($key, $keys);
        if($index !== FALSE){
            array_splice($arr, $index, 1);
        }

        return $arr;
    }

完整代码:

<?php 
$arr=array(
    2 => array(
        'catid' => 2,
        'catdir' => 'notice',
    ),
    5 => array(
        'catid' => 5,
        'catdir' => 'subject',
    ),
    6=> array(
        'catid' => 6,
        'catdir' => 'news'
    )
);
function findVal($arr,$dir){
    foreach($arr as $key=>$val){
    if(in_array($dir,$val))
        return $key;
    }
}
function array_remove_by_key($arr, $key){
        if(!array_key_exists($key, $arr)){
            return $arr;
        }
        $keys = array_keys($arr);
        $index = array_search($key, $keys);
        if($index !== FALSE){
            array_splice($arr, $index, 1);
        }

        return $arr;
    }
$keyz = findVal($arr,'subject');
print_r(array_remove_by_key($arr,$keyz));
?> 

效果图:
效果图.png

最后修改:2019 年 01 月 25 日
如果觉得我的文章对你有用,请随意赞赏