【问题标题】:How do I merge the output of a for loop into a single array or JSON file in PHP?如何将 for 循环的输出合并到 PHP 中的单个数组或 JSON 文件中?
【发布时间】:2015-05-18 21:14:12
【问题描述】:

我正在尝试按位置获取照片的数量,但是当我遍历各个位置时,输出会以单独的数组形式出现。我希望这一切都以单个数组的形式出现,然后转换为 JSON。

 <?php

    $gURL= "URL";
    $pullstring = file_get_contents($gURL);
    $jsonish = json_decode($pullstring, TRUE);
    $feature= $jsonish['features'];
    $arrlength = count($feature);

    for($x = 0; $x < 10; $x++)
    {

        $Inames= str_replace(" ", "+", $feature[$x]['properties']['name']);
        $lats= $feature[$x]['geometry']['coordinates'][1];
        $longs= $feature[$x]['geometry']['coordinates'][0];
        $ID= $feature[$x]['properties']['osm_id'];
        $numba='XXXXXXXXXXXX';  

        $instagram_URL = 'https://api.instagram.com/v1/media/search?lat='.$lats.'&lng='.$longs.'&distance=10&client_id='.$numba;
        $instagram_json = file_get_contents($instagram_URL);
        $instagram_array = json_decode($instagram_json, TRUE);
        $instagram_var= array('ID'=>$ID,'name'=>$Inames,'photos'=>count($instagram_array['data']));
        //print_r ($instagram_var);
    };

    ?>

输出:

  Array (
[ID] => 1
[name] => 1905
[photos] => 15
) Array (
[ID] => 2
[name] => 15+ria
[photos] => 19
) Array (
[ID] => 3
[name] => 18th+Amendment
[photos] => 19
) Array (
[ID] => 4
[name] => 1920dc
[photos] => 15
) Array (
[ID] => 5
[name] => 19th
[photos] => 19
) Array (
[ID] => 6
[name] => 2+Birds+1+Stone
[photos] => 6
) Array (
[ID] => 7
[name] => 201+Bar
[photos] => 7
) Array (
[ID] => 8
[name] => 30+Degrees+Lounge
[photos] => 19
) Array (
[ID] => 9
[name] => 51st+State
[photos] => 7
) Array (
[ID] => 10
[name] => 8+x+10+Club
[photos] => 19
)

【问题讨论】:

  • $instagram_var[]= array(...); 而不是$instagram_var= array(...);?然后在 for($x = 0; $x &lt; 10; $x++) 循环之后 echo json_encode($instagram_var);

标签: php arrays json for-loop


【解决方案1】:

将您的$instagram_var 设为二维数组。

$instagram_var = Array();
for ($...) { // your loop
     /* ... */
     $instagram_var[] = array('ID'=>$ID,'name'=>$Inames,'photos'=>count($instagram_array['data']));
}

之后,您可以使用 $instagram_var[0]$instagram_var[1] ...及其内部值与$instagram_var[0]['ID']等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2019-01-20
    • 2020-09-05
    相关资源
    最近更新 更多