PHP 删除数组中某一个值元素,有多种方式可以实现
一、for 循环删除值元素
// for 循环删除值元素
function remove_array_item_by_for() {
// key 为字符
$mimvp_array = array("blog"=>"blog.mimvp.com",
"site"=>"site.mimvp.com",
"shop"=>"shop.mimvp.com",
"proxy"=>"proxy.mimvp.com",
"money"=>"money.mimvp.com",
"domain"=>"domain.mimvp.com");
var_dump($mimvp_array);
$delete_item = "proxy.mimvp.com";
foreach($mimvp_array as $key=>$value) {
if($value == $delete_item) {// 判断 value
unset($mimvp_array[$key]);// 删除 key
}
}
var_dump($mimvp_array);
// key 为数字下标
$mimvp_array = array("0"=>"blog.mimvp.com",
"1"=>"site.mimvp.com",
"2"=>"shop.mimvp.com",
"3"=>"proxy.mimvp.com",
"4"=>"money.mimvp.com",
"5"=>"domain.mimvp.com");
var_dump($mimvp_array);
$delete_item = "proxy.mimvp.com";
foreach($mimvp_array as $key=>$value) {
if($value == $delete_item) {// 判断 value
unset($mimvp_array[$key]);// 删除 key
}
}
var_dump($mimvp_array);// key 数字下标删除丢失
$mimvp_array = array_values($mimvp_array);// 重建 key 数字下标方式1
var_dump($mimvp_array);
$mimvp_array = array_merge($mimvp_array);// 重建 key 数字下标方式2
var_dump($mimvp_array);
}
运行结果:
/Users/homer/Workspace/miMvp_demo/tmp_php.php:13:
array (size=6)
'blog' => string 'blog.mimvp.com' (length=14)
'site' => string 'site.mimvp.com' (length=14)
'shop' => string 'shop.mimvp.com' (length=14)
'proxy' => string 'proxy.mimvp.com' (length=15)
'money' => string 'money.mimvp.com' (length=15)
'domain' => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:20:
array (size=5)
'blog' => string 'blog.mimvp.com' (length=14)
'site' => string 'site.mimvp.com' (length=14)
'shop' => string 'shop.mimvp.com' (length=14)
'money' => string 'money.mimvp.com' (length=15)
'domain' => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:30:
array (size=6)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'proxy.mimvp.com' (length=15)
4 => string 'money.mimvp.com' (length=15)
5 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:37:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
4 => string 'money.mimvp.com' (length=15)
5 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:40:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'money.mimvp.com' (length=15)
4 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:43:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'money.mimvp.com' (length=15)
4 => string 'domain.mimvp.com' (length=16)
二、php 自带函数删除值元素
// php 自带函数删除值元素
function remove_array_item_by_func() {
// key 为字符
$mimvp_array = array("blog"=>"blog.mimvp.com",
"site"=>"site.mimvp.com",
"shop"=>"shop.mimvp.com",
"proxy"=>"proxy.mimvp.com",
"money"=>"money.mimvp.com",
"domain"=>"domain.mimvp.com");
var_dump($mimvp_array);
$delete_item = "proxy.mimvp.com";
$mimvp_array = array_merge(array_diff($mimvp_array, array($delete_item)));// 计算出差异数组,并重建key下标索引
var_dump($mimvp_array);
// key 为数字下标
$mimvp_array = array("0"=>"blog.mimvp.com",
"1"=>"site.mimvp.com",
"2"=>"shop.mimvp.com",
"3"=>"proxy.mimvp.com",
"4"=>"money.mimvp.com",
"5"=>"domain.mimvp.com");
var_dump($mimvp_array);
$delete_item = "proxy.mimvp.com";
$key = array_search($delete_item, $mimvp_array);// 先找出删除值元素的key
array_splice($mimvp_array, $key, 1);// 自动实现重置序列值(只对数字下标有效,字母下标报错)
var_dump($mimvp_array);// key 数字下标删除丢失
var_dump($mimvp_array);
$delete_item = "proxy.mimvp.com";
$mimvp_array = array_merge(array_diff($mimvp_array, array($delete_item)));// 计算出差异数组,并重建key下标索引
var_dump($mimvp_array);
var_dump($mimvp_array);
$delete_array = array("blog.mimvp.com", "proxy.mimvp.com");
$mimvp_array = array_merge(array_diff($mimvp_array, $delete_array));// 计算出差异数组,并重建key下标索引
var_dump($mimvp_array);
}
运行结果:
/Users/homer/Workspace/miMvp_demo/tmp_php.php:57:
array (size=6)
'blog' => string 'blog.mimvp.com' (length=14)
'site' => string 'site.mimvp.com' (length=14)
'shop' => string 'shop.mimvp.com' (length=14)
'proxy' => string 'proxy.mimvp.com' (length=15)
'money' => string 'money.mimvp.com' (length=15)
'domain' => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:60:
array (size=5)
'blog' => string 'blog.mimvp.com' (length=14)
'site' => string 'site.mimvp.com' (length=14)
'shop' => string 'shop.mimvp.com' (length=14)
'money' => string 'money.mimvp.com' (length=15)
'domain' => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:70:
array (size=6)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'proxy.mimvp.com' (length=15)
4 => string 'money.mimvp.com' (length=15)
5 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:74:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'money.mimvp.com' (length=15)
4 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:76:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'money.mimvp.com' (length=15)
4 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:79:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'money.mimvp.com' (length=15)
4 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:81:
array (size=5)
0 => string 'blog.mimvp.com' (length=14)
1 => string 'site.mimvp.com' (length=14)
2 => string 'shop.mimvp.com' (length=14)
3 => string 'money.mimvp.com' (length=15)
4 => string 'domain.mimvp.com' (length=16)
/Users/homer/Workspace/miMvp_demo/tmp_php.php:84:
array (size=4)
0 => string 'site.mimvp.com' (length=14)
1 => string 'shop.mimvp.com' (length=14)
2 => string 'money.mimvp.com' (length=15)
3 => string 'domain.mimvp.com' (length=16)
上面的例子中$delete_item是一个值,如果$delete_item是一个数组$delete_array或者其他复杂数据结构,从$mimvp_array中删除所有$delete_array包含的元素,上面的方法同样有效
参考推荐: