Foreach数组未正确创建

时间:2014-09-15 23:00:00

标签: php arrays serialization

我正在使用foreach生成一个数组...

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

我得到的输出是......

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";}}"

但我需要的是......

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";}}}

我哪里错了?

1 个答案:

答案 0 :(得分:1)

看起来你期望$medias->guid是一个数组,但它是一个字符串。我相信你需要在推入阵列时提供数组值。这应该适合你:

$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);