发布网友 发布时间: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掉就行。