今天遇到有人问怎么查找二维数组中是否存在某个值,并对该值所在的数组进行删除,需要的可以参考一下
示例二维数组:
$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));
?>
效果图: