我使用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 :(得分:1)
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
函数轻松找到最小值。然后,您可以检查循环中多维数组中每个数组的最低价格。
希望它有所帮助!