[英]PHP Get min value from array and associated row data?
我有一個包含以下數據的數組,我試圖找到價格最低的列,然后獲取關聯的行數據(庫存和供應商)的值,我設法獲得了最低的價格,但不確定如何獲取庫存和供應商(任意區域)的關聯行數據。 謝謝
$productdata=array
(
array('Price'=>$row['price1'],'Stock'=>$row['stock1'],'Supplier'=>$row['supplier1']),
array('Price'=>$row['price2'],'Stock'=>$row['stock2'],'Supplier'=>$row['supplier2']),
array('Price'=>$row['price3'],'Stock'=>$row['stock3'],'Supplier'=>$row['supplier3'])
);
$filtered_array = array_filter($productdata, function($v) {
return $v['Price'];});
$minprice= min( array_column( $filtered_array, 'Price') );
print_r($minprice);
不使用排序或循環的解決方案:
獲取數組中的所有價格,然后獲取最低價格的鍵
$prices = array_column($productdata, 'Price');
$min_price = min($prices);
$key = array_search($min_price, $prices);
輸出匹配的行:
$match = $productdata[$key];
echo '<pre>' . print_r($match, true) . '</pre>';
說明文件:
首先按升序對數組進行排序,然后將第一個元素設為最低。
$filtered_array=array
(
array('Price'=>100,'Stock'=>1000,'Supplier'=>'Kapil'),
array('Price'=>50,'Stock'=>500,'Supplier'=>'Kapil2'),
array('Price'=>200,'Stock'=>2000,'Supplier'=>'Kapil3')
);
for($i = 0; $i < count($filtered_array); $i++ ) {
for($j = $i+1; $j< count($filtered_array); $j++ ) {
if($filtered_array[$i]['Price'] > $filtered_array[$j]['Price']) {
$temp = $filtered_array[$j];
$filtered_array[$j] = $filtered_array[$i];
$filtered_array[$i] = $temp;
}
}
}
print_r($filtered_array[0]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.