我正在尝试从JSON响应中获取特定值,并且在确定如何定位目标值时遇到了麻烦。我可以遍历它,但是我只想基于键输出一个值,因为响应是动态的,并不总是保证具有相同的输出。
我已经将JSON响应转换为数组,这是我目前拥有的示例:
Array (
[0] => Array (
[rel] => advertisements
[href] => https://api.teamsnap.com/v3/advertisements
)
[1] => Array (
[rel] => active_season_team
[href] => https://api.teamsnap.com/v3/teams
)
[2] => Array (
[rel] => assignments
[href] => https://api.teamsnap.com/v3/assignments
)
[3] => Array (
[rel] => availabilities
[href] => https://api.teamsnap.com/v3/availabilities
)
)
我需要能够通过键“ rel”来回显“ href”值。我尝试过:
foreach($links as $key => $value) {
echo $key['advertisements'];
}
但是需要一种方式将$ links表示为$ key-> rel = $ value-> http(这就是我能想到的逻辑)
您可以在array_search
列上使用array_search
(使用rel
提取)来查找匹配值的键(例如array_column
)。如果存在,则可以直接访问该值:
array_column
输出
advertisements
if(($key = array_search('advertisements', array_column($links, 'rel'))) !== false) {
echo $links[$key]['href'];
}
为了获得更大的灵活性,您可以将其编写为函数:
https://api.teamsnap.com/v3/advertisements
输出:
Demo on 3v4l.org
function get_link($links, $cat) {
if(($key = array_search($cat, array_column($links, 'rel'))) !== false) {
return $links[$key]['href'];
}
else {
return '';
}
}
echo get_link($links, 'active_season_team');
我不理解您的要求,但按照语法,在您的情况下,键将是数组的索引,您可以按以下方式获取数据:
https://api.teamsnap.com/v3/teams