требуемые разностные ключи от 2-х массивов в php - PullRequest
0 голосов
/ 04 октября 2018

У меня есть следующие 2 массива,

1)

Array
    (
        [109] => 0
        [112] => 10
        [113] => 0
        [110] => 0
    )

2)

Array
    (
        [112] => 10.00
    )

теперь я хочу выводить как

Array

(
        [109] => 0
        [113] => 0
        [110] => 0
    )

здесь [112] я не хочу, потому что это то же самое, я хочу разницы.Я использовал array_diff(arr1,arr2);, но я получаю [112].как я могу избавиться от 112. Так как 10 и 10,00 имеют одинаковое значение

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

вам нужен вариант array_diff, равный array_diff_key, который будет вычислять разницу по ключам, а не по значениям.

$result = array_diff_key($array1,$array2)
var_dump($result);

doc_link

0 голосов
/ 04 октября 2018

Вы можете использовать функцию array_diff_key .Например:

$arr1 = [
    109 => 0,
    112 => 10,
    113 => 0,
    110 => 0
];

$arr2 = [
    112 => 10.00
];


print_r(array_diff_key($arr1, $arr2));

Вывод:

Array
(
    [109] => 0
    [113] => 0
    [110] => 0
)
0 голосов
/ 04 октября 2018

Это потому что ваши значения строковые.Так что 10 и 10.00 - это разные значения.Измените все значения на int или float.

$arr1 = array_map('floatval', $arr1);
$arr2 = array_map('floatval', $arr2);

array_diff($arr1, $arr2);
...