PHP中的多维JSON数组?

PHP中的多维JSON数组?,php,arrays,json,multidimensional-array,Php,Arrays,Json,Multidimensional Array,我对JSON不太熟悉,更不用说尝试将值从JSON拉入PHP,所以在尝试这样做时,我会有点头疼 如果这不是嵌套/多维数组,这将是一个简单的搜索、复制和粘贴作业,但我遇到的问题是,我只能从数组中提取第一个结果。当然,我的代码有点混乱,因为我一直在尝试新的方法,并不断尝试,以获得预期的结果,但我不知道如何处理数据,以一种方式,只提取我正在寻找的信息 我非常感谢您提供的任何提示/建议,以指导我获取所有结果,而不仅仅是第一个结果。我确信这是一件简单的事情,我只是没有看到,但我已经做了一段时间,最后决定寻求

我对JSON不太熟悉,更不用说尝试将值从JSON拉入PHP,所以在尝试这样做时,我会有点头疼

如果这不是嵌套/多维数组,这将是一个简单的搜索、复制和粘贴作业,但我遇到的问题是,我只能从数组中提取第一个结果。当然,我的代码有点混乱,因为我一直在尝试新的方法,并不断尝试,以获得预期的结果,但我不知道如何处理数据,以一种方式,只提取我正在寻找的信息

我非常感谢您提供的任何提示/建议,以指导我获取所有结果,而不仅仅是第一个结果。我确信这是一件简单的事情,我只是没有看到,但我已经做了一段时间,最后决定寻求一些帮助

下面是我目前正在使用的PHP编码,它只产生一个结果:

$url = "https://somewhere.com/give-api/v1/donors/?key=***&token=***&number=999";
$data = file_get_contents($url);
$donors = json_decode($data, true);
$count = 0;
$output = array();

foreach ($donors as $donor) {
  $spent = substr($donor[$count]['stats']['total_spent'], 0, strpos($donor[$count]['stats']['total_spent'], "."));
  if ($spent != 0)
  {
    $level = check_spent($spent);
    //       ^ Custom function, just returns a level number based on the $spent value
    $output += [$spent, $level, $donor[$count]['info']['first_name'] . " " . $donor[$count]['info']['last_name']];
  }
  $count++;
}

echo '<pre>';
print_r($output);
echo '</pre>';

$GANDERS是整个地图,$GANDERS[“GANDERS”]是你需要迭代的地方

看看你在
json\u decode
之后得到的数据,你可能会得到一个只有一个键的数组:
GANDERS

foreach ($donors['donors'] as $donor) {
  // do your work
}
如果是,请在迭代时执行以下操作:


JSON只是数组和对象的文本表示,没有什么“熟悉”的。您只需使用
json\u decode()
json\u encode()
在json和它所表示的数据之间进行转换。因此,如果您了解PHP数组,您就了解JSON。请尝试将
$output+=
更改为
$output[]=
谢谢您,奈杰尔!再加上其他建议的编辑,效果非常好!非常感谢你!这与奈杰尔的提示相结合,效果非常好!非常感谢你!这与奈杰尔的提示相结合,效果非常好!
print_r($donors);
foreach ($donors['donors'] as $donor) {
  // do your work
}