2个回答
展开全部
你说的这个可不是查找重复元素,而是查找存在元素值部分内容相同的所有元素。没有简单方法。
你只能使用循环,一个一个的把元素的值打散,一次又一次的与其他的每一个元素比较。类似下面的代码。
$a = array('abc99999','add23425','ghfgh77ghjk');
$acount = count($a);
$test = $a[0];
$strlen = strlen($test);
echo "a[0]";
for($i=1;$i<$acount;$i++){//从第二个元素开始比较,
for($j=0;$j<$strlen;$j++){//把第一个元素的所有内容与其他元素内容进行比较。
if(strpos($a[$i],$test[$j]) != false){
echo "a[$i]";break;
}
}
}
=============
注意以上代码不适合中文或中英文混杂的情况,只适合你列出的例子,如果是中文或中英文混杂,strpos($a[$i],$test[$j])需要额外处理。因为如果中文,$test[$j]则是半个中文字符。
以下是中文示例。主是要与中文编码有关,请自行完善。
$a = array('这是一串中文','真a的中吗','ghfgh77ghjk');
$acount = count($a);
$test = $a[0];
$strlen = strlen($test);
echo "a[0]";
for($i=1;$i<$acount;$i++){//从第二个元素开始比较,
for($j=0;$j<$strlen;$j+=2){//把第一个元素的所有内容与其他元素内容进行比较。
$str = substr($test,$j,2);
//echo $str." ";
if(strpos($a[$i],$str) != false){
echo "a[$i]";break;
}
}
}
你只能使用循环,一个一个的把元素的值打散,一次又一次的与其他的每一个元素比较。类似下面的代码。
$a = array('abc99999','add23425','ghfgh77ghjk');
$acount = count($a);
$test = $a[0];
$strlen = strlen($test);
echo "a[0]";
for($i=1;$i<$acount;$i++){//从第二个元素开始比较,
for($j=0;$j<$strlen;$j++){//把第一个元素的所有内容与其他元素内容进行比较。
if(strpos($a[$i],$test[$j]) != false){
echo "a[$i]";break;
}
}
}
=============
注意以上代码不适合中文或中英文混杂的情况,只适合你列出的例子,如果是中文或中英文混杂,strpos($a[$i],$test[$j])需要额外处理。因为如果中文,$test[$j]则是半个中文字符。
以下是中文示例。主是要与中文编码有关,请自行完善。
$a = array('这是一串中文','真a的中吗','ghfgh77ghjk');
$acount = count($a);
$test = $a[0];
$strlen = strlen($test);
echo "a[0]";
for($i=1;$i<$acount;$i++){//从第二个元素开始比较,
for($j=0;$j<$strlen;$j+=2){//把第一个元素的所有内容与其他元素内容进行比较。
$str = substr($test,$j,2);
//echo $str." ";
if(strpos($a[$i],$str) != false){
echo "a[$i]";break;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
in_array()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询