Sfjklm Ответов: 1

Получить итог от симметричных интигеров из массива в PHP?


Итак, у меня есть массив, например $arr= "/43sdsd555ksldk66sd"544fdfd";

Я беру числа, используя preg_match_all '/\d+/' и array_map('intval', $zni[0]);

Теперь проблема в том,что мне нужно перевернуть все эти int , чтобы увидеть, симметричны ли они, например 555 и 66, и если они есть, то получить их в общей сложности.(всего только симметричных чисел)

я попытался использовать функцию " strrev "и получил симметричные числа, но я не знаю, как поместить их в одно место, если они "истинны", и вычислить их.

Что я уже пробовал:

<form class= "sredina" action="" method="get" class="form-signin">       
<input type="text" name="niz" id="niz" placeholder="unesi"  />
<input type="submit" name="submit"  >
</form>  

<?php


$numbers = "";

if (isset($_GET['submit'])) {
	 
	$numbers = ($_GET['niz']);
	preg_match_all('/\d+/', $numbers, $zni);
	$numtwo= array_map('intval', $zni[0]);
     
   
	 
}

foreach ($numtwo as $num) {
 

$reverse = strrev($num); 
var_dump($reverse);
 
if ($num == $reverse) {
	 
	$reverse = "true";
 
}
else {
	 
	$reverse = "false";
	
}

var_dump($reverse);
 
}

Patrice T

Когда у вас есть "44455", считается ли это "444" и "55" ?

1 Ответов

Рейтинг:
4

Sfjklm

actually there is a much simplier solution to do- 
<?php






$input = "/43sdsd555ksldk66sd\"544fdfd";
$total = 0;

preg_match_all('/\d+/', $input, $m);
foreach ($m[0] as $d)
    if ($d == strrev($d))
        $total += $d;

var_dump($total); // => int(621)
echo $total;