php查找数组中符合的字符,删除整个键

发布网友 发布时间:2022-04-28 08:02

我来回答

2个回答

懂视网 时间:2022-04-28 12:23

PHP删除Array数组里指定的key

/**
 * php除数组指定的key值(直接删除key值实现)
 * @param unknown $data
 * @param unknown $key
 * @return unknown
 */
function array_remove($data, $key){
if(!array_key_exists($key, $data)){
return $data;
}
$keys = array_keys($data);
$index = array_search($key, $keys);
if($index !== FALSE){
array_splice($data, $index, 1);
}
return $data;
 
}
 
/**
 * php除数组指定的key值(通过直接重新组装一个数组)
 * @param unknown $data
 * @param unknown $key
 * @return unknown
 */
function array_remove1($data,$delKey) {
$newArray = array();
if(is_array($data)) {
foreach($data as $key => $value) {
if($key !== $delKey) {
$newArray[$key] = $value;
}
}
}else {
$newArray = $data;
}
return $newArray;
}
 
$data = array('apple','address','ChinaGuangZhou');
$result = array_remove($data, 'name');
$result1 = array_remove1($data, 'name');
print_r($result);
print_r($result1);

补充说明:

1,其实问题出在array_search这个函数上,这个函数按照value去搜索,得到位置,如果找不到就返回NULL或false;

2,因此,在按key进行查找key对应的位置时,需要在$keys里去找,这就是调用array_keys的原因

3,因为array_search这个函数可能返回NULL和false,所以得按绝对比较,使用!

更多相关知识,请访问PHP中文网!

热心网友 时间:2022-04-28 09:31

如果只是值的相等,可以用array_value_exists()函数进行确定,删除指定键。
你这个是模糊匹配,就需要遍历数组,然后使用str_pos进行查找,如果返回值为true,unset掉就行。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com