我有这样的数组
$arr = array(10, 20, 50, 80, 20, 10, 30);
我只需要使用 php 代码获得第一个重复值。不要使用 php array 功能。帮帮我们 所以 ans 是 - 20.
答案 0 :(得分:6)
尝试(或只是做功课)
function do_your_homework($arr) {
$seen = [];
foreach($arr as $a) {
if (isset($seen[$a])) return $a;
$seen[$a] = 1;
}
return false;
}
它使用$seen
数组来存储已经看到的值(首先为空)。然后,对于输入数组$arr
中的每个值,它检查是否已经看到该值:
如果已经看到,那么这是第二次出现的值,它找到了它正在查找的内容并返回值
否则通过在$seen
数组中添加条目
如果它不在循环中,这意味着它没有找到任何两个出现的内容,它会返回false
,因此您可以测试=== false
以了解是否找到了某些内容。< / p>
答案 1 :(得分:4)
试试这个
$arr = array(10, 20, 50, 80, 20, 10, 30);
$new_arr= array();
for($i=0;$i<count($arr);$arr++)
{
if(in_array($arr[$i],$new_arr))
{
$dup = $arr[$i]; break;
}
else
{
$new_arr[$i] = $arr[$i];
}
}
您将在$ dup变量中获得第一个副本。
答案 2 :(得分:1)
试试这个:
<?php
$arr = array(10, 20, 50, 80, 20, 10, 30);
echo get_first_repeated($arr);
function get_first_repeated($array){
$junk=array();
foreach( $array as $v){
if(in_array($v , $junk)){
return $v;
}
$junk[] = $v;
}
}
?>
答案 3 :(得分:0)
function getfirstdup()
{
$arr = (10, 20, 50, 80, 20, 10, 30);
$count = array();
foreach ($arr as $ar) {
if (isset($count[$ar])) return $ar;
$count[$ar] = 1;
}
}