<?php
$string= file_get_contents("http://ddragon.leagueoflegends.com/cdn/5.23.1/data/en_US/champion.json");
$array = json_decode($string, true);
foreach($array ["key"] as $key) {
if($key == '412') {
echo $key['id'];
}
}
?>
基本上我在这里尝试做的是搜索基本上是id的数字版本的密钥,使用密钥我试图在巨大的json数组中找到正确的字符串id,但我是面对一些挣扎,因为我不知道该怎么做。
在http://ddragon.leagueoflegends.com/cdn/5.23.1/data/en_US/champion.json中,如果您搜索412(在CTRL f上第二次找到两次),您会看到"key":"412"
好吧,我想要一个从它进入的id,在这种情况下是“Thresh”("id":"Thresh"
)(我想要的东西只是Thresh)。希望我尽可能清楚。感谢
答案 0 :(得分:1)
您需要循环['data']
而不是["key"]
内的['data']
。
$string= file_get_contents("http://ddragon.leagueoflegends.com/cdn/5.23.1/data/en_US/champion.json");
$array = json_decode($string, true);
foreach($array['data'] as $data) {
if($data['key'] == '412') {
echo $data['id'];
}
}
答案 1 :(得分:0)
您可以尝试使用此代码。 如果您遇到任何逻辑问题,我会向您解释。
$string = file_get_contents("http://ddragon.leagueoflegends.com/cdn/5.23.1/data/en_US/champion.json");
$jsonArray = json_decode($string, true);
foreach($jsonArray ["data"] as $key) {
if($key['key'] == '412') {
echo $key['id'];
}
}
答案 2 :(得分:0)
您需要考虑额外的嵌套级别。 Report_Expressions_Default_Permissions
本身就是一个关联数组,其中包含<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="MyPermissionSet" Name="Report_Expressions_Default_Permissions" Description="This code group grants default permissions for code in report expressions and Code element. ">
<IMembershipCondition class="StrongNameMembershipCondition" version="1" PublicKeyBlob="..." />
之类的键。这些键中的每一个都作为其内部的关联数组。它必须在那个嵌套数组中...
$array['data']
如果您打算使用这样的数据集,您可以考虑将Aatrox
值映射到foreach($array['data'] as $element_name => $element_data) {
$key = $element_data['key'];
if ($key === '412') {
echo $element_data['id'];
};
}
值,因为看起来数据的结构可以实现快速查找由key
。