fightstarr20
fightstarr20

Reputation: 12608

Foreach Array not being created correctly

I am generating an array using a foreach like so...

<?php
$docs = array();
$media = get_attached_media('image');
foreach($media as $medias) {
    $docs[] = $medias->guid;
}
$images = serialize(array('docs' => $docs));
print_r($images);
?>

The output I am getting is...

a:1:{s:4:docs";a:3:{i:0;s:62:"http://www.example.com/image1.jpg";i:1;s:62:"http://www.example.com/image2.jpg";i:2;s:62:"http://www.example.com/image3.jpg";}}"

But what I need is...

a:1:{s:4:"docs";a:4:{i:0;a:1:{s:15:"property_imgurl";s:35:"http://wwww.example.com/image1.jpg";}i:1;a:1:{s:15:"property_imgurl";s:35:"http://wwww.example.com/image2.jpg";}i:2;a:1:{s:15:"property_imgurl";s:35:"http://wwww.example.com/image3.jpg";}i:3;a:1:{s:15:"property_imgurl";s:35:"http://wwww.example.com/image4.jpg";}}}

Where am I going wrong?

Upvotes: 0

Views: 30

Answers (1)

cdr
cdr

Reputation: 131

It looks like your expecting $medias->guid to be an array, but it's a string. I believe your going to need to provide an array value when pushing into your array. This should work for you:

$docs = array();
$media = get_attached_media('image');
foreach($media as $medias) {
    $docs[] = array("property_imgurl" => $medias->guid);
}

$images = serialize(array('docs' => $docs));
print_r($images);

Upvotes: 1

Related Questions