Я использую 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) {
...
}
}
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
функция. Затем вы можете сравнить минимальную цену с ценой каждого массива в многомерном массиве в цикле.
Надеюсь, поможет!
Других решений пока нет …