У меня есть вопрос о сравнении двух (текстовых) массивов. Я получил два массива из цикла, содержащего числа, как показано ниже:
array(96) { [1]=> string(2) "20" [2]=> string(2) "18" [3]=> string(2)...
array(96) { [1]=> string(3) "135" [2]=> string(3) "103" [3]=> string(2) "88"
То, что я хочу, это новый массив, который содержит разницу значений (1-2). Это означает, что приведенные выше 2 массива приведут к следующему новому (текстовому) массиву
array(96) { [1]=> string(3) "-115" [2]=> string(3) "-85" [3]=> string(2)
Кто-нибудь может мне помочь?
Вы могли бы сделать это с одним foreach
-loop. А потом вычеркивать их друг от друга. Вам просто нужно такое же количество элементов в $array
И в $array2
,
$new = array();
foreach($array as $key => $val) {
$new[] = (string) ($val - $array2[$key]);
}
Если значения не являются целыми числами, вы можете удалить приведение типов (string)
,
это функция,
function foo($array1, $array2){
$resultArray = array();
for($i=0; i<count($array1); $i++){
$resultArray[] = (string)((int)$array1[$i] - (int)$array2[$i]);
}
return $resultArray;
}
Надеюсь, это поможет 🙂
<?php
$a=array(20,18);
$b=array(135,103);
function fr($d,$d1){
global $c;
$c[]=$d-$d1;
}
array_map('fr',$a,$b);
var_dump($c);