Правильный путь к изображению из массива - PullRequest
0 голосов
/ 30 мая 2018

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

Сначала 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 / 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',
         ],
    ],
];

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

1 Ответ

0 голосов
/ 30 мая 2018

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

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 и рекурсия .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...