Приветствую всех!
Хотел бы задать вопрос по интерактивному тренажеру в 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']
я бы еще понял… А в примере как?..
Подскажите пожалуйста, в каком месте я вхожу в заблуждение?..