2017-01-19 1 views
0

私はまた、安価な価格の配列からすべてのデータを取得する必要があります。アレイから最低価格を得るにはmin()を使用しますが、安価なものではなく高価なものを表示するにはmin()を使用して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

この全体配列(サブ配列)に 'min()'を実装していますか? –

+0

$分=分(array_column($ array、 'price')); –

+0

おそらく、 'array_column'はバージョン5.5の後でのみ利用可能です。 ($ dumpData)&& is_array($ dumpData)) 'をチェックすると、最初の' $ dumpData = array(); 'が宣言されます。 – RamRaider

答えて

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関数で最小値を簡単に見つけることができます。次に、ループ内の多次元配列内の各配列の価格に対して最小価格を確認することができます。

希望すると助かります!

+0

ありがとうございました。それは素晴らしいです:) – Zoric

+0

あなたは大歓迎です! :) – Perumal

+0

@Anant全く問題ありません。あなたのコードは完全に機能します。彼が必要とする余分なものは、最低価格を含む配列を得ることです。彼は、最低価格を抽出し、関連する配列を価格で欲しいだけではありません。 – Perumal

関連する問題