本文章总结了php中数组的交集,并集,以及去除数组的重复项,以及从小到大排序函数,几乎都是对数组的操作有需要的朋友可参考参考。
| 代码如下 | 复制代码 |
|
//两个数组的并集 $arr1 = array('a','b','c','d','e','f'); //$arr2 = array('a','a','e','a','p','a','a','e'); $arr2 = array('a','a','a','a'); $ilength = count($arr1); $jlength = count($arr2); /** * 两个数组的交集 * @param array $arr1 * @param array $arr2 * @autho zhaoya * @return array $arr */ function jiaoji($arr1,$arr2) { $ilength = count($arr1); $jlength = count($arr2); for($i=0;$i { for($j=0;$j { if($arr2[$i] == $arr1[$j]) { $arr[] = $arr2[$i]; break; } } } return $arr; } $arr3 = array(1,10,10,5,90,50,90); $arr4 = array(10,23,50,100,110,80); echo ' ';<br>
$time1 = microtime();<br>
<br>
/*$arr3 = __deleterepeat($arr3);<br>
$arr4 = __deleterepeat($arr4);<br>
$arr5 = bingji($arr3,$arr4);<br>
$arrsort = sort_array($arr5);*/<br>
<br>
///经过实验证明 先并集,然后在去除重复值 ,再排序,这样的速度会快一些 <br>
///而先删除 两个数组的重复值,在并集,在排序的话,这样的速度慢点<br>
$arr5 = bingji($arr3,$arr4);<br>
$arr5 = __deleterepeat($arr5);<br>
$arrsort = sort_array($arr5);<br>
<br>
$time2 = microtime();<br>
echo $time1,'<hr>';<br>
echo $time2,'<hr>';<br>
echo $time2-$time1;<br>
<br>
print_r($arrsort);<br>
//去除重复值(第一种方法)<br>
//__deleterepeat($arr2);<br>
<br>
<br>
/**<br>
* 去除重复值(第一种方法)<br>
* @param array $array<br>
* @return array $tmparr<br>
* @author zhaoya<br>
*/<br>
function __deleterepeat($array)<br>
{<br>
$count = count($array);<br>
for($i = 0;$i
{<br>
$change = false;<br>
for($j=$i+1;$j
{<br>
if($array[$i] == $array[$j])<br>
{<br>
$change=true;<br>
break;<br>
}<br>
}<br>
if($change==false)<br>
{<br>
$tmparr[] = $array[$i];<br>
}<br>
}<br>
return $tmparr;<br>
}<br>
<br>
<br>
<br>
<br>
<br>
//去除重复的值 第二种方法<br>
<br>
$arrayshift = _delrepeat($arr2);<br>
$tmparray=array();<br>
/***<br>
* 去除一维数组重复的值<br>
* @param array $arr<br>
* @return array $tmparray;<br>
* @author zhaoya<br>
*/<br>
function _delrepeat($arr)<br>
{<br>
for($i=0;$i<count></count>
{<br>
if(inarray($arr[$i],$tmp))<br>
{<br>
$tmparray[] = $arr[$i];<br>
}<br>
}<br>
return $tmparray;<br>
}<br>
<br>
/**<br>
* 查找变量是否在这个数组里面<br>
* @param integer $num<br>
* @param array $arr<br>
* @author zhaoya<br>
* @return boolean<br>
*<br>
*/<br>
function inarray($num,$arr)<br>
{<br>
if($arr)<br>
{<br>
for($i=0;$i<count></count>
{<br>
if($arr[$i] == $num)<br>
{<br>
return false;<br>
}<br>
return true;<br>
}<br>
}<br>
return true;<br>
}<br>
<br>
<br>
<br>
<br>
<br>
/**<br>
* 两个数组的并集<br>
* @param array $arr1 数组1<br>
* @param array $arr2 数组2<br>
* @author zhaoya<br>
* @return array $arr1<br>
*/<br>
function bingji($arr1,$arr2)<br>
{<br>
$ilength = count($arr1);<br>
$jlength = count($arr2);<br>
for($i=0;$i
{<br>
$change=false;<br>
for($j=0;$j
{<br>
if($arr2[$i] == $arr1[$j])<br>
{<br>
$change = true;<br>
break;<br>
}<br>
}<br>
if($change == false)<br>
{<br>
$arr1[] = $arr2[$i];<br>
}<br>
}<br>
return $arr1;<br>
}<br>
<br>
/**<br>
* 数组排序 从小到大<br>
* @param array $arr 数组<br>
* @author zhaoya<br>
* @return array $arr<br>
*/<br>
function sort_array($arr)<br>
{<br>
$length = count($arr);<br>
<br>
for($i=0;$i
{<br>
for($j=$i+1;$j
{<br>
if($arr[$i] > $arr[$j])<br>
{<br>
$tmp = $arr[$i];<br>
$arr[$i] = $arr[$j];<br>
$arr[$j] = $tmp;<br>
}<br>
}<br>
}<br>
return $arr;<br>
}<br>
<br>
<br>
<br>
<br>
?>登录后复制 |
|
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号