Показать тип данных всех элементов в массиве
У меня есть массив
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, которые могут предоставить мне аналогичную функциональность?
3 ответа
Решение
Ты можешь использовать array_map
:
var_dump(array_map('gettype', $array));
ArrayMap с gettype в качестве обратного вызова будет достаточно в вашем случае.
Это было бы самой близкой нативной реализацией того, чего вы хотели бы достичь.
С точки зрения отладки, var_dump
покажет вам презентабельный вывод типов и значений любого объекта в PHP.
С точки зрения кодирования, array_map
лучше всего преобразовать массив. Просто предоставьте ему обратный вызов, и он преобразует все значения:
array_map('gettype', $array);
Вот рабочий пример phpplayground.