получить дешевую цену с помощью min () из массива

Я использую min (), чтобы получить самую дешевую цену из массива, но она показывает дорогую, а не дешевую. Мне также нужно получить все данные из массива дешевых цен.

код

 $dumpData = array();

if ( !empty($dumpData) && is_array($dumpData) ) {

$minPriceArray = min($dumpData['data']);

$price = $func->convert_amount($minPriceArray['currency'],   get_currency(), $minPriceArray['price']);
echo '<span class="price"><small>From</small> '.$price.' '.get_currency().'</span>';

}else{
echo '<span class="price">No data found</span>';
}

массив

 array(4) {
[0]=>
array(8) {
["logo"]=>
["price"]=>
int(649)
["currency"]=>
string(3) ""["availability"]=>
string(7) "instock"},
[1]=>
array(8) {
["logo"]=>
["price"]=>
int(849)
["currency"]=>
string(3) ""["availability"]=>
string(7) "instock"},
[2]=>
array(8) {
...
},
[3]=>
array(8) {
...
}

}

0

Решение

function find_min_price_array($arr) {
$prices = array_column($arr, 'price');
$min_price = min($prices);

$min_price_array = array();

foreach($arr as $key => $value) {
if($value['price'] == $min_price) {
$min_price_array[] = $value;
}
}

return $min_price_array;
}

var_dump(find_min_price_array($arr));

Пользовательская функция find_min_price_array возвращает массив, который содержит минимальную цену. Он также возвращает массивы, которые содержат одинаковую минимальную цену.

array_column возвращает все значения столбца в многомерном массиве. array_column($arr, 'price') получает все цены в массивах, а затем вы можете легко найти минимальное значение с min функция. Затем вы можете сравнить минимальную цену с ценой каждого массива в многомерном массиве в цикле.

Надеюсь, поможет!

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector