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包含的元素,上面的方法同样有效

 

 

参考推荐

PHP 数组使用小结

PHP 数组使用技巧

PHP 字符串函数总结

PHP 判断字符串包含

PHP 判断数字,字母,特殊符号,中文

php 常用函数总结(数组,字符串,时间,文件操作)

PHP 输出字符串(echo,print,printf,sprinf,print_r,var_dump)

PHP 数据类型转换