Что я делаю неправильно в следующих манипуляциях с массивом в цикле foreach?

0

Я имею массив под названием $photos следующим образом:

Array
(
    [0] => Array
        (
            [fileURL] => https://www.filepicker.io/api/file/UYUkZVHERGufB0enRbJo
            [filename] => IMG_0004.JPG
        )

    [1] => Array
        (
            [fileURL] => https://www.filepicker.io/api/file/WZeQAR4zRJaPyW6hDcza
            [filename] => IMG_0003.JPG
        )

)

Теперь я хочу создать новый массив под названием $values следующим образом:

 Array
(
    [vshare] => Array
        (
            [IMG_0003.JPG] => Array
                (
                    [0] => https://www.filepicker.io/api/file/RqAN2jZ7ScC8eOx6ckUE
                )

            [IMG_0004.JPG] => Array
                (
                    [0] => https://www.filepicker.io/api/file/XdwtFsu6RLaoZurZXPug
                )

        )

)

Для этого я пробовал следующий код:

$values = array();
        foreach($photos as $photo ) {
          $values['vshare'][$photo->filename] = array($photo->fileURL);
        }

Затем я получил неправильный вывод, когда у меня print_r($values):

Array
(
    [vshare] => Array
        (
            [] => Array
                (
                    [0] => 
                )

        )

)

Может кто-то исправить ошибку, которую я делаю в своем коде?

Благодарю.

Теги:
arrays
foreach
key-value
associative-array

3 ответа

1
Лучший ответ

→ - оператор для объектов, как это описано в этом вопросе.

Пытаться:

$values = array();
foreach($photos as $photo ) {
    $values['vshare'][$photo['filename']] = array($photo['fileURL']);
}
0
<?php

$values = array();
foreach($photos as $photo ) {
   $values['vshare'][$photo['filename']][0] = $photo['fileURL'];
}
0

вы должны попробовать этот код

$values = array();
foreach($photos as $photo) {
    $values['vshare'][$photo['filename']] = array(0 => $photo['fileURL']);
}

Прекрасно работает для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню