Не могу понять концепцию функции в php коде

Так что у меня есть индекс.php-файл с данными.php (список массивов различных типов элементов):

$catalog[304] = [
    "title" => "The Very Thought of You",
    "img" => "img/media/nat_king_cole.jpg",
    "genre" => "Jaz",
    "format" => "MP3",
    "year" => 2008,
    "category" => "Music",
    "artist" => "Nat King Cole"
]; //and so on ->

У меня также есть функция.php-файл, содержащий эту функцию:

function get_item_html($id, $item) {
    $output =
        "<li><a href='#'><img src='"
        . $item["img"] . "' alt='"
        . $item["title"] . "' />"
        . "<p> View Details </p>"
        . "</a></li>";
    return $output;

А потом индекс.php, которые имеют оба файла включены в верхней части:

<ul class="items">
$random = array_rand($catalog, 4);
foreach ($random as $id) {
echo get_item_html($id, $catalog[$id]);
}

Чего я не могу понять, так это»$catalog[$id]». Похоже, что он должен вернуть идентификатор каталога, а не ключ в идентификаторе каталога. Но, по-видимому, код действителен, потому что он работает. Просто я не могу понять почему.

Я знаю, что я далеко в этом, но если бы кто-то мог объяснить мне это, я был бы очень благодарен.

Спасибо!

Метки

1 ответ

  1. $catalog[$id] просто возвращает массив с id=$id из ваших данных.php-файл и метод get_item_html используют img и значения заголовка этого массива и генерируют некоторый html. Так что если ваш случайный генератор выбран позволяет сказать 304, то ваш выход будет:

    <li><a href='#'><img src='img/media/nat_king_cole.jpg' alt='The Very Thought of You' />
          <p> View Details</p>
        </a>
    </li>