par
Spols » 29 mai 2007, 14:53
le problème c'est si il y a plusieurs chiffres aussi proche les uns que les autres
?php
$chiffres = array('12','184','1274','13274','1','37','1','64','134','1','16');
$chiffre_comparaison = 3;
comparaison($chiffres,$chiffre_comparaison);
function comparaison($array,$comp)
{
$diff = abs($comp - $array[0]);
echo"<pre>";var_dump($diff);echo"</pre>";
foreach($array as $val)
{
$temp = abs($comp - $val);
if ($diff > $temp)
{$diff = $temp;$grds = $val;}
elseif ($diff == $temp)
{$grds .= " ".$val;}
}
$explode = (substr_count($grds,' ')) ? explode(' ',$grds) : $grds;
if (is_array($explode))
{
$echo = "$comp est aussi proche de";
foreach($explode as $val)
{
$echo .= " $val que de";
}
echo substr($echo,0,strlen($echo)-7);
}
else
{
echo "$comp est plus proche de $explode";
}
}
?>
pas terrible pour le message, a voir ce que tu veux vraiment
le problème c'est si il y a plusieurs chiffres aussi proche les uns que les autres
[php]?php
$chiffres = array('12','184','1274','13274','1','37','1','64','134','1','16');
$chiffre_comparaison = 3;
comparaison($chiffres,$chiffre_comparaison);
function comparaison($array,$comp)
{
$diff = abs($comp - $array[0]);
echo"<pre>";var_dump($diff);echo"</pre>";
foreach($array as $val)
{
$temp = abs($comp - $val);
if ($diff > $temp)
{$diff = $temp;$grds = $val;}
elseif ($diff == $temp)
{$grds .= " ".$val;}
}
$explode = (substr_count($grds,' ')) ? explode(' ',$grds) : $grds;
if (is_array($explode))
{
$echo = "$comp est aussi proche de";
foreach($explode as $val)
{
$echo .= " $val que de";
}
echo substr($echo,0,strlen($echo)-7);
}
else
{
echo "$comp est plus proche de $explode";
}
}
?>[/php]
pas terrible pour le message, a voir ce que tu veux vraiment