This article describes the joint use method of key, current, next in PHP. Share it with everyone for your reference, the details are as follows:
Question:
$arrq = array(); $arrq['tuc'] = array('sss'=>'ewq','shu'=>'sjkah','saa'=>'dwjhaz'); $arrq['tucs'] = array('ssss'=>'ewsq','sQhu'=>dwjhaz','sa12a'=>'dwjQhaz'); $arrq['tuca'] = array('sssd'=>'ewqq','shu2'=>'sjkah','saSa'=>'dwjhhaz');
How to remove duplicate values from the $arrq array without destroying the array structure?
Idea: First output the elements in the first two-dimensional array using the array_unique function.
When outputting the elements in the second two-dimensional array, you first use array_unique to process them, and then remove the elements that already exist in the first two-dimensional array.
When outputting the third one, you first use array_unique to process it, and then remove the elements that already exist in the first and second two-dimensional array sets.
And so on.
In short, you first need to array_unqiue to remove duplicates, and then remove the elements that exist in the previous set of array elements.
The following is the code:
<?php $arrq = array(); $arrq['tuc'] = array('sss'=>'ewq','shu'=>'sjkah','saa'=>'dwjhaz'); $arrq['tucs'] = array('ssss'=>'ewsq','sQhu'=>'dwjhaz','sa12a'=>'dwjQhaz'); $arrq['tuca'] = array('sssd'=>'ewqq','shu2'=>'sjkah','saSa'=>'dwjhhaz'); $last=array(); //设置一个空的用来比较的数组 while($arr=current($arrq)) { //echo key($arrq); $tmp=array_unique($arr); //先清除每个一维数组自身相同的值 if(count($last)==0) { $last=array_merge($last,$arr); //将已经去重的前面的数组合并 } else { // 对其余一维数组进行输出 //echo key($arrq); foreach($arr as $ke=>$va) { if(in_array($arr[$ke], $last)) //如果已经存在的元素 unset($arrq[key($arrq)][$ke]); //删除,此处取得数组元素的KEY值是关键 } $last=array_merge($last,$arr); //将$last变为前面数组的合集,用来进行下次比较 } next($arrq); //指针向后移,这样才能用key函数取得不同的$arrq的下标 } //以下输出处理后的数组 foreach($arrq as $arr) { foreach($arr as $val) { echo $val." "; } echo "<br>"; } ?>
The running result is:
Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP Network Programming Skills", "Introduction Tutorial on PHP Basic Grammar", "Summary of PHP Office Document Skills (including word, excel, access, ppt)", "php date and time usage summary", "php object-oriented programming introductory tutorial", "php string (string) usage summary", "php mysql database operation introductory tutorial" and "php common database operation skills summary" 》
I hope this article will be helpful to everyone in PHP programming.