如何从这个PHP代码中获得最便宜的价格?
Array
(
[SKU0001901] => Array
(
[0] => 300000
[1] => 50000
)
[SKU0001902] => Array
(
[0] => 400
[1] => 2000000
[2] => 500
)
[SKU0001903] => Array
(
[0] => 100000
[1] => 500000
)
)
期待:SKU0001901是50000, SKU0001902最便宜的是400等。
解决
有很多方法可以回答我的问题。就我而言,我使用array_map。
$o = array_map('min', $array);
将来,我想研究一种方法,使其更快,特别是在大数据数据中。
答案 0 :(得分:5)
答案 1 :(得分:2)
最简单的array_map
和sort
<?php
$array= array(
'SKU0001901' => array(300000,50000),
'SKU0001902' => array(400,2000000,500),
'SKU0001903' => array(100000,500000));
$array=array_map(function($value){
sort($value,SORT_NUMERIC);
return $value[0];
}, $array);
print_r($array);
<强>输出:强>
Array
(
[SKU0001901] => 50000
[SKU0001902] => 400
[SKU0001903] => 100000
)
答案 2 :(得分:1)
这适用于您的情况。
$array_full= array( array('SKU0001901' => array(300000,50000),'SKU0001902' => array(400,2000000,500),'SKU0001903' => array(100000,500000)));
foreach($array_full[0] as $key=>$aaa){
echo $key.' : '.min($aaa).'<br>';
}
您可以使用min
从数组中获取最低值
答案 3 :(得分:0)
非常简单,您可以使用foreach
和sort
。
详细了解不同的数组排序方法here。
在sort($v)
循环中使用foreach
,其中排序最低到最高并且不保留键索引,因此此数组中的第0项始终是最小值。
<?php
$input = [
'SKU0001901' => [
300000,
50000,
],
'SKU0001902' => [
400,
2000000,
500,
],
'SKU0001903' => [
100000,
500000,
]
];
$output = [];
foreach ($input as $k => $v) {
sort($v);
$output[$k] = $v[0];
}
print_r($output);
产地:
Array
(
[SKU0001901] => 50000
[SKU0001902] => 400
[SKU0001903] => 100000
)