Приветствую всех!
Хотел бы задать вопрос по интерактивному тренажеру в HTML Академии - Часть 3:
Массивы и функции в PHP, урок 9, 10, функции сортировки. Там объясняется, как в сортировке используется колбэк, и приводится пример. Суть примера приведу сейчас ниже, чтобы вам не было необходимости идти на страницу урока.
Суть примера
Все товары хранятся в массиве $products. Это ассоциативный массив, ключами которого служат идентификаторы товаров, а значениями — сами товары.
Каждый товар также является ассоциативным массивом. За цену отвечает ключ 'price':
'6' => [
'title' => 'Лампа Мсеюлида',
'img_url' => 'img/item-mseyulida.jpg',
'price' => 4000,
'is_new' => false
]
Отсортируем товары, вызвав встроенную функцию uasort. Передадим ей массив $products и функцию sort_by_price (тот самый колбэк).
Колбэк выглядит так:
function sort_by_price($product_1, $product_2) {
if ($product_1['price'] > $product_2['price']) {
$result = 1;
}
if ($product_1['price'] < $product_2['price']) {
$result = -1;
}
if ($product_1['price'] === $product_2['price']) {
$result = 0;
}
return $result;
}
Теперь попытаюсь сформулировать мой вопрос.
$product_1['price'] и $product_2['price'] - это ведь значения из массивов $product_1 и $product_2 под ключами 'price'?
Как и откуда программа возьмёт их значения для сравнения?
Где эти массивы?
Ну $products['6']['price'] я бы еще понял… А в примере как?..
Подскажите пожалуйста, в каком месте я вхожу в заблуждение?..