【发布时间】:2017-06-04 03:16:36
【问题描述】:
我使用 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) {
...
}
}
【问题讨论】:
-
您是否对整个数组(带有子数组)实施
min()? -
$min = min(array_column($array, 'price'));
-
也许值得注意的是,
array_column仅在版本 5.5 之后可用。对上面的代码 sn-p 感到困惑 - 最初声明$dumpData = array();然后检查if ( !empty($dumpData) && is_array($dumpData) ) {??? -
RramRaider,来自DB的数据是数组或字符串