【问题标题】:Trying to put multiple data in php/json array试图将多个数据放入 php/json 数组中
【发布时间】:2012-01-24 11:35:27
【问题描述】:

这可能很简单。但我就是想不出该怎么做。

我有一个照片上传脚本,我想在一个数组中返回两种类型的数据,现在我只有一组返回的照片数据。

现在我这样做:

 $photos = array();

 ///Script for photo upload etc.
 array_push($photos, $newPhotoToAdd)

 //then when it's finished uploading each photo i do json_encode:
 print json_encode($photos);

所有这些都很完美,但是现在我想为每张照片返回另一组数据。

我需要做类似的事情:

 array_push($photos, ['photoID'] = $photoID, ['photoSource'] = $newPhotoToAdd)

【问题讨论】:

    标签: php arrays json


    【解决方案1】:

    原始问题

    您可以只推送一个数组而不是 newPhotoToAdd,如下所示:

    $photos = array();
    // perform upload
    $photos[] = array(
        'photoID' => $photoID,
        'photoSource' => $newPhotoToAdd
    );
    print json_encode($photos);
    

    您会注意到我已将 array_push() DOCs 替换为 array append syntax of [] DOCs,因为它更简单且开销更少:

    注意:如果您使用 array_push() 将一个元素添加到数组中,则 最好使用 $array[] = 因为这样没有开销 调用函数。

    来自 cmets:用 JavaScript 打印出来

    你正在处理一个对象数组,所以你需要遍历它们:

    for(var i in json) {
        alert(json[i].photoID);
    }
    

    【讨论】:

    • 谢谢,现在我在尝试在 javascript 中使用它时遇到了麻烦。它没有像我想象的那样工作。 var json = JSON.parse(内容);警报(json.photoID);这返回未定义
    【解决方案2】:

    你想创建一个这样的数组:

    $photo = array('photoID' => $photoID, 'photoSource' => $newPhotoToAdd);
    

    然后你想像以前一样使用这个新数组进行推送:

    array_push($photos, $photo);
    

    【讨论】:

      【解决方案3】:

      做一些类似的事情:

      $photos = array();
      array_push($photos, array('photoID'=>$photoID,'photoSource'=>$newPhotoToAdd));
      
      foreach ($photos as $photo) {
      print json_encode($photo);
      }
      

      【讨论】:

        猜你喜欢
        • 2013-08-21
        • 1970-01-01
        • 2018-05-25
        • 1970-01-01
        • 2022-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多