В классе выдается несколько переменных, некоторые из них могут быть NULL такой результат выдает функция, если в запросе есть, что-то что она не поддерживает.
Когда собрал все переменных их нужно сравнить и выдать наименьшее значение = оптимальный поставщик по бизнес логике.
// получаем значения переменных
// проверяем на NULL
// то что не NULL запихивает в функцию min();
// выдаем минимальное значение = лучший поставщик
допустим:
$banan = 10;
$yabloko = 12;
$tomat = NULL; т.к поставщик этот товар не может поставить.
далее идет сравнение min($banan, $yabloko, $tomat); // 10, 12, NULL
результат будет естественно NULL т.к оно наименьшее, а нужно, чтобы выдало 10.
На первом этапе легко отсортировать значения функцией is_null();
Но как задать конкретные существующие переменные для функции min()?
Чтобы запрос был min($banan, $yabloko);
Если действительно поставщики содержатся в переменных то помести их в массив функцией compact() далее фильтруешь array_filter() оставляя числа и передаешь в min()