我有这样的数组
$arr = array(10, 20, 50, 80, 20, 10, 30);
我只需要使用php代码获取第一个重复值。不要使用php 数组函数。帮帮我,伙计们。所以答案是 - 20。
试试看(或者只是做你的功课)
function do_your_homework($arr) {
$seen = [];
foreach($arr as $a) {
if (isset($seen[$a])) return $a;
$seen[$a] = 1;
}
return false;
}
它使用$seen
数组来存储已经看到的值(起初是空的)。然后对于输入数组中的每个值,$arr
它会检查该值是否已经被看到:
如果 if 已经被看到,那么这是一个值的第二次出现,它找到了它正在寻找的内容并返回该值
否则,它通过在$seen
数组中添加一个条目来标记所看到的值
如果它退出循环,这意味着它没有找到任何出现两次的东西,它会返回false
,以便您可以测试=== false
以了解是否找到了某些东西。
尝试这个
$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 变量中获得第一个副本。
尝试这个 :
<?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;
}
}
?>
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;
}
}