我正在尝试访问特定的密钥。这是我的对象:
stdClass Object (
[ext-118-27-16-0-23] => Array (
[0] => stdClass Object (
[version] => 6
[addr] => 0000:0000:0000:0000:0000:FFFF:C0A8:0001
)
[1] => stdClass Object (
[version] => 4
[addr] => 192.168.0.1
)
)
)
在这种情况下,我期望输出键192.168.0.1
的值addr
。第一个键(ext-118-27-16-0-23
)发生变化,我不知道他的价值。
该模式应类似于ext-*
所以我想我需要这样的东西:
$addr = {WILDCARD}[1]->addr;
答案 0 :(得分:3)
这就是我想你可以做的
$ipv4Addresses = array_map(function($ip) {
return $ip->addr;
}, array_filter(current((array) $obj), function($ip) {
return $ip->version === 4;
}));
这将返回所有IPv4 addr
属性的数组。
要点:
(array) $obj
current()
提取第一个(唯一的)属性array_filter()
将地址数组减少为version
4 array_map()
仅提取addr
属性您可能希望在最终数组上使用array_values()
,以从0
重新索引它。