Я пытаюсь взять массив имен файлов и вывести следующее …
a:1:{s:4:"docs";a:4:{i:0;a:1:{s:15:"property_imgurl";s:63:"http://wwww.example.com/image1.jpg";}i:1;a:1:{s:15:"property_imgurl";s:63:"http://wwww.example.com/image2.jpg";}i:2;a:1:{s:15:"property_imgurl";s:63:"http://wwww.example.com/image3.jpg";}i:3;a:1:{s:15:"property_imgurl";s:63:"http://wwww.example.com/image4.jpg";}}}
Это то, что я до сих пор …
<?php
$serialized_data = serialize(array('http://www.example.com/image1.jpg', 'http://www.example.com/image2.jpg', 'http://www.example.com/image3.jpg', 'http://www.example.com/image4.jpg'));
echo $serialized_data . '<br>';
?>
Но это дает мне …
a:4:{i:0;s:34:"http://www.example.com/image1.jpg";i:1;s:34:"http://www.example.com/image2.jpg";i:2;s:34:"http://www.example.com/image3.jpg";i:3;s:34:"http://www.example.com/image4.jpg";}
Куда я иду не так?
В сериализованном массиве нет ничего плохого. Вы просто не создаете массив так, как хотите. PHP не может угадать, каким вы хотите, чтобы ваш массив был таким, поэтому вы должны сказать PHP, каким вы хотите, чтобы он был. Так что вам нужно правильно изменить массив ввода.
Ты даешь
array('http://www.example.com/image1.jpg', 'http://www.example.com/image2.jpg', 'http://www.example.com/image3.jpg', 'http://www.example.com/image4.jpg')
и это полностью отличается от сериализованного массива, как это должно быть. Ваш массив должен выглядеть так
array('docs' => array(array('property_imgurl' => 'http://www.example.com/image1.jpg'), array('property_imgurl' => 'http://www.example.com/image2.jpg'), array('property_imgurl' => 'http://www.example.com/image3.jpg'), array('property_imgurl' => 'http://www.example.com/image4.jpg')))
Вам просто не хватает определений ключей массива.
$serialized = array(array('docs' => array(array('property_imgurl' => 'http://www.example.com/image4.jpg'))));
Как видите, каждый URL имеет ключ property_imgurl
и каждый из этих массивов является частью родительского массива с ключом docs