Правильный путь изображения из массива

Я пытаюсь отобразить изображение, где путь определен в массиве нет из базы данных.

Сначала index.php вызывает app/app.php, который затем включает массив $animals из animals.php.

Проблема в том, как мне получить доступ к $animals в index.php и получить значение ключа pics?

index.php

<?php require_once __DIR__ . '/app/app.php';
    //var_dump($animals);?>
<?php foreach ($animals as $animal): ?> <br>
    <a href = "#"><?php echo $animal['name'] ?></a> 
    <?php echo $animal['size'] ?>
    <img src = "<?php echo $animal['pics'] ?>" alt = "Pic 1">
    <?php //echo "<img src='" . $pics . "' alt=''>";  ?>
<?php endforeach; ?>

приложение / app.php:

<?php

ini_set('display_errors', '1');
error_reporting('E_ALL');
$animals = require_once __DIR__ . '/Db/animals.php';

animals.php:

<?php

return [
    [
        'name' => 'cow',
        'size' => 20,
        'pics' => ['/photos/cow1.jpg'],
         //'pics' => 'photos/cow1.jpg',
         //'pics' => '<img class = "wrap" src = "photos/cow1.jpg">',
         //'pics' => './photos/cow1.jpg';
         'detailes' => [
             'colour' => 'brown',
             'origin' => 'N Italy',
         ],
    ],
];

Расстраивает то, что я не могу ее решить. Может кому поможет.

pics - это подмассив, поэтому $animal['pics'][0] - первый

user9487972 29.05.2018 23:46
var_dump - ваш друг. Может быть, с xdebug для красивого вывода. Хорошо иметь привычку разбирать эти свалки.
ficuscr 29.05.2018 23:49

Спасибо, Смит. Я спрашиваю вас, правильно ли я определил «картинки» в animals.php?

php idiot 29.05.2018 23:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
249
1

Ответы 1

Посмотрим, поможет ли это ...

array(1) {
  [0]=>
  array(4) {
    ["name"]=>
    string(3) "cow"
    ["size"]=>
    int(20)
    ["pics"]=>
    array(1) {
      [0]=>
      string(16) "/photos/cow1.jpg"
    }
    ["detailes"]=>
    array(2) {
      ["colour"]=>
      string(5) "brown"
      ["origin"]=>
      string(7) "N Italy"
    }
  }
}

Вы действительно хотите: echo $a[0]['pics'][0];

Массивы внутри массивов. Это действительно сбивает с толку, но быстро станет вашей второй натурой.

Поиграйте с var_dump ...

var_dump($a);
var_dump($a[0]);
etc...

или попробуйте повторить, когда вы в тупике ...

foreach ($a as $key => $value) {
 echo "$key -> $value";
}

Это приведет к NOTICE Array to string conversion, потому что $value - это массив. Попробуйте добавить второй (вложенный) цикл foreach. Когда вы можете перебирать весь массив, вы знаете, что понимаете это ... см. Также: is_array и рекурсия.

Другие вопросы по теме