Как понять аргументы функции колбэк? (Часть 3, урок 9, 10))

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

Подскажите пожалуйста, в каком месте я вхожу в заблуждение?..