如何使用foreach循环添加多维数组元素

时间:2015-02-18 13:29:16

标签: php arrays multidimensional-array foreach

我在循环播放我想做的事情时遇到了麻烦。

我有一个名为$data的数组,目前只包含两个元素:

array(2) {
  ["pagination"]=>
  string(166) "https://someURL.com"
  ["images"]=>
  string(3) "foo"
}

我现在希望在[images]元素中添加另一个维度。再次在该元素中,另外两个数据。结果如下:

array(2) {
  ["pagination"]=>
  string(166) "https://someURL.com"
  ["images"]=> array(5) {
      [0]=> array(2){
        ["image_url"]=> string(1234) "http://www.blah.com"
        ["caption"]=> string(1234) "Here is my caption strng"
      }
      [1]=> array(2){
        ["image_url"]=> string(1234) "http://www.blah.com"
        ["caption"]=> string(1234) "Here is my caption strng"
      } 
      [2]=> array(2){
        ["image_url"]=> string(1234) "http://www.blah.com"
        ["caption"]=> string(1234) "Here is my caption strng"
      } 
      [3]=> array(2){
        ["image_url"]=> string(1234) "http://www.blah.com"
        ["caption"]=> string(1234) "Here is my caption strng"
      } 
      [4]=> array(2){
        ["image_url"]=> string(1234) "http://www.blah.com"
        ["caption"]=> string(1234) "Here is my caption strng"
      }  
}

我的问题是,我如何从它的原始来源(一个名为$pics的数组)中提取数据并以上述方式将其输入我的新[images]元素?

目前,我可以使用以下循环输出image_urlcaption数据,我只是无法弄清楚如何将数据推送到上面的数组中。

foreach($pics['data'] as $pic){
    $caption = $pic['caption']['text'];
    $image = $pic['images']['standard_resolution']['url'];
}

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

foreach($pics['data'] as $pics)
{
     $caption = $pic['caption']['text'];
     $image = $pic['images']['standard_resolution']['url'];
     $data['images'][] = array($image, $caption);
}

编辑:$ data [' images']必须在 foreach语句之前设置为数组$data['images'] = array();