[PHP]数组移除某个值的两种方式

php中从数组中移除某个值,可以有两种方式,一种是常规的遍历比值然后移除,另一种是利用array_diff函数。

先利用是利用遍历数组的方式写了个函数:

function array_delete_value($array,$delete_value){
	foreach ( $array AS $k=>$v ) {
		if ( $v === $delete_value ) {
			unset($array[$k]);
		}
	}
	return $array;
}

用法:array_delete_value(原数组,待移除的值);

两种方式的使用:
1.利用自定义函数:

<?php
$del	=	'';
$t		=	0;
function array_delete_value($array,$delete_value){
	foreach ( $array AS $k=>$v ) {
		if ( $v === $delete_value ) {
			unset($array[$k]);
		}
	}
	return $array;
}
for ( $i=1;$i<5000;$i++ ) {
	$s1		=	microtime(true);
	$file2	=	array('','net920','cn','','xxxx','kkkk','sdfasd','53453','sdfsadfsafddsaf',0);
	$file2	=	array_delete_value($file2,$del);
	$s2		=	microtime(true);
	$t		=	$t + ($s2-$s1);
}
echo number_format($t/$i,10);
print_r($file2);
?>

2.利用array_diff函数:

<?php
$del	=	'';
$t		=	0;
for ( $i=1;$i<5000;$i++ ) {
	$s3		=	microtime(true);
	$file	=	array('','net920','cn','','xxxx','kkkk','sdfasd','53453','sdfsadfsafddsaf',0);
	$file	=	array_values(array_diff($file, array($del)));
	$s4		=	microtime(true);
	$t		=	$t + ($s4-$s3);
}
echo number_format($t/$i,10);
print_r($file);
?>

从效率上来说,使用自定义方式效率稍微高一点点,不多,呵呵。看情况来决定吧,自定义函数方式不会改变键名,第二种方式会改变键名。

Foxmail无法发送邮件的解决办法

一直以来在客户端收发邮件都是使用Foxmail,用着比较舒服。目前还在使用6.5版的,虽然也装了7.0但还未使用,准备换操作系统后用。

最近用foxmail发邮件总失败,开始是用sohu的邮箱有问题,以为是连接SMTP服务器的问题或者foxmail设置有问题,搞了很久也不行,于是试图尝试给sohu邮箱客服发了纸条,结果,TMD,很久也没回复。

原本想放弃了的。

但今天试图用使用gmail发送邮件,竟然也不行,于是考虑,应该还是foxmail自身的问题。

想起来收邮件时有问题可以对收件箱进行一致性检查或者进行压缩。

于是尝试,对foxmail的发件箱->右键->属性,选择“压缩”,然后再检查“一致性”,一般这样做就可以正常发邮件了,如果还不行的话,再重复一遍这个操作,然后选择“工具”选项卡,点击“开始修复”,应该可以解决问题。

这个办法,仅针对你的foxmail的发信SMTP确定设置正确的情况下,才有效的,假如你的smtp本身设置就有问题那打死也发不了的,呵呵。

最明显的表征就是,明明昨天还可以发邮件,然后今天多次尝试怎么都发不了,那么估计就是你的发件箱出了问题,用我上面的办法就可以解决^_^

Deepseath Modified from Green Hope Theme · Proudly powered by WordPress · 津ICP备09005418号-1  津公网安备 12010302001005号