Разница между двумя массивами, содержащими числа в виде строки

У меня есть вопрос о сравнении двух (текстовых) массивов. Я получил два массива из цикла, содержащего числа, как показано ниже:

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)

Кто-нибудь может мне помочь?

-2

Решение

Вы могли бы сделать это с одним foreach-loop. А потом вычеркивать их друг от друга. Вам просто нужно такое же количество элементов в $array И в $array2,

$new = array();
foreach($array as $key => $val) {
$new[] = (string) ($val - $array2[$key]);
}

Если значения не являются целыми числами, вы можете удалить приведение типов (string),

1

Другие решения

это функция,

function foo($array1, $array2){
$resultArray = array();
for($i=0; i<count($array1); $i++){
$resultArray[] = (string)((int)$array1[$i] - (int)$array2[$i]);
}
return $resultArray;
}
0

Надеюсь, это поможет 🙂

<?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);
0
По вопросам рекламы [email protected]