Показать тип данных всех элементов в массиве

У меня есть массив

array:23 [▼
"cpe_mac" => "204492519985""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
]

Я хочу знать тип данных каждого из них, поэтому я сделал это

$cpe_type = [];
foreach ($cpe as $k => $v) {
$cpe_type[$k] = gettype($v);
}

Я получил то, что хотел

array:23 [▼
"cpe_mac" => "string""bandwidth_max_up" => "integer""bandwidth_max_down" => "integer""filter_icmp_inbound" => "boolean""dmz_enabled" => "boolean""dmz_host" => "string""vlan_id" => "integer""dns" => "array""xdns_mode" => "integer""cfprofileid" => "integer""stub_response" => "integer""acl_mode" => "integer""portal_url" => "string""fullbandwidth_max_up" => "integer""fullbandwidth_max_down" => "integer""fullbandwidth_guaranty_up" => "integer""fullbandwidth_guaranty_down" => "integer""account_id" => "integer""location_id" => "integer""network_count" => "integer""group_name" => "string""vse_id" => "integer""firewall_enabled" => "boolean"]

Есть ли какие-то готовые функции PHP, которые могут предоставить мне аналогичную функциональность?

2

Решение

Ты можешь использовать array_map:

var_dump(array_map('gettype', $array));
2

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

ArrayMap с gettype в качестве обратного вызова будет достаточно в вашем случае.

Это было бы самой близкой нативной реализацией того, чего вы хотели бы достичь.

2

С точки зрения отладки, var_dump покажет вам презентабельный вывод типов и значений любого объекта в PHP.

С точки зрения кодирования, array_map лучше всего преобразовать массив. Просто предоставьте ему обратный вызов, и он преобразует все значения:

array_map('gettype', $array);

Вот рабочий пример phpplayground

0
По вопросам рекламы [email protected]