Кемеровские программисты php общаются здесь
Anonymous
Рекурсивный поиск различий между двумя многомерными массивами со строгой проверкой типов.
Сообщение
Anonymous » 15 ноя 2024, 12:01
У меня есть 2 массива
$cpe
$sample
Информация о массиве $cpe
Код: Выделить всё
array:23 [▼
"cpe_mac" => "298639133839"
"bandwidth_max_up" => 30000
"bandwidth_max_down" => 50000
"filter_icmp_inbound" => true
"dmz_enabled" => false
"dmz_host" => "http:\/\/ddd.com"
"vlan_id" => 2
"dns" => array:2 [▶]
"xdns_mode" => 0
"cfprofileid" => 11111
"stub_response" => "0"
"acl_mode" => 1
"portal_url" => "http:\/\/portal.com"
"fullbandwidth_max_up" => 1000000
"fullbandwidth_max_down" => 2000000
"fullbandwidth_guaranty_up" => 300000
"fullbandwidth_guaranty_down" => 400000
"account_id" => 1000
"location_id" => 3333
"network_count" => 3
"group_name" => "test_group"
"vse_id" => 20
"firewall_enabled" => false
]
Информация о массиве $
Код: Выделить всё
array:23 [▼
"cpe_mac" => "a0a1a2a3a4a5"
"bandwidth_max_up" => 300000
"bandwidth_max_down" => 500000
"filter_icmp_inbound" => true
"dmz_enabled" => false
"dmz_host" => "http] = \/\/ddd.com"
"vlan_id" => 2
"dns" => array:2 [▶]
"xdns_mode" => 0
"cfprofileid" => 11111
"stub_response" => ""
"acl_mode" => 1
"portal_url" => "http] = \/\/portal.com"
"fullbandwidth_max_up" => 1000000
"fullbandwidth_max_down" => 2000000
"fullbandwidth_guaranty_up" => 300000
"fullbandwidth_guaranty_down" => 400000
"account_id" => 1234
"location_id" => 3333
"network_count" => 3
"group_name" => "test_group"
"vse_id" => 20
"firewall_enabled" => false
]
Я просматриваю их бесчисленное количество раз, они кажутся мне одинаковыми, за исключением их ценности. Затем я сравниваю их программно,
Код: Выделить всё
$equal = ($cpe == $sample );
dd($equal); // false
Я думаю, он возвращает false, потому что их значения разные. Я прав?
Как проверить, совпадают ли эти массивы
Если
различаются , как я могу узнать, что именно отличает их?
Подробнее здесь:
https://stackoverflow.com/questions/336 ... strict-typ
1731661311
Anonymous
У меня есть 2 массива [list] [*]$cpe [*]$sample Информация о массиве $cpe [code]array:23 [▼ "cpe_mac" => "298639133839" "bandwidth_max_up" => 30000 "bandwidth_max_down" => 50000 "filter_icmp_inbound" => true "dmz_enabled" => false "dmz_host" => "http:\/\/ddd.com" "vlan_id" => 2 "dns" => array:2 [▶] "xdns_mode" => 0 "cfprofileid" => 11111 "stub_response" => "0" "acl_mode" => 1 "portal_url" => "http:\/\/portal.com" "fullbandwidth_max_up" => 1000000 "fullbandwidth_max_down" => 2000000 "fullbandwidth_guaranty_up" => 300000 "fullbandwidth_guaranty_down" => 400000 "account_id" => 1000 "location_id" => 3333 "network_count" => 3 "group_name" => "test_group" "vse_id" => 20 "firewall_enabled" => false ] [/code] Информация о массиве $ [code]array:23 [▼ "cpe_mac" => "a0a1a2a3a4a5" "bandwidth_max_up" => 300000 "bandwidth_max_down" => 500000 "filter_icmp_inbound" => true "dmz_enabled" => false "dmz_host" => "http] = \/\/ddd.com" "vlan_id" => 2 "dns" => array:2 [▶] "xdns_mode" => 0 "cfprofileid" => 11111 "stub_response" => "" "acl_mode" => 1 "portal_url" => "http] = \/\/portal.com" "fullbandwidth_max_up" => 1000000 "fullbandwidth_max_down" => 2000000 "fullbandwidth_guaranty_up" => 300000 "fullbandwidth_guaranty_down" => 400000 "account_id" => 1234 "location_id" => 3333 "network_count" => 3 "group_name" => "test_group" "vse_id" => 20 "firewall_enabled" => false ] [/code] Я просматриваю их бесчисленное количество раз, они кажутся мне одинаковыми, [b]за исключением[/b] их ценности. Затем я сравниваю их программно, [code]$equal = ($cpe == $sample ); dd($equal); // false [/code] Я думаю, он возвращает false, потому что их значения разные. Я прав? Как проверить, совпадают ли эти массивы [*][code]length[/code] [*][code]key[/code] [*][code]data-type[/code] [/list] Если [b]различаются[/b], как я могу узнать, что именно отличает их? Подробнее здесь: [url]https://stackoverflow.com/questions/33657139/find-differences-between-two-multidimensional-arrays-recursively-with-strict-typ[/url]