查找深层嵌套数组中特定键的最低值

Given an array with the following structure:

$orders = [
     0 => [
              'volume' => 1926,
              'lowPrice' => 1000.00,
              'date' => 2016-12-29 00:45:23
     ],
     1 => [
              'volume' => 145,
              'lowPrice' => 1009.99,
              'date' => 2016-12-31 14:23:51
     ],
     2 => [
              'volume' => 19,
              'lowPrice' => 985.99,
              'date' => 2016-12-21 09:37:13
     ],
     3 => [
              'volume' => 2984,
              'lowPrice' => 749.99,
              'date' => 2017-01-01 19:37:22
     ],
     // ...
]

I'm looking for the most performant way to find the lowest value for lowPrice. The size of $orders will more than likely be larger than 500 items. For the given array, the result would be as follows:

$lowestPrice = $this->findLowestPrice($orders);

echo $lowestPrice; // 749.99

Extract an array of lowPrice and find the min():

echo min(array_column($orders, 'lowPrice'));

Since those appear to be floats, you'll probably want number_format() or money_format().

If you're only interested in the value of the lowest price (not the index in the array or something) you can use array_reduce:

$orders = [
     0 => [
              'volume' => 1926,
              'lowPrice' => 1000.00,
              'date' => "2016-12-29 00:45:23"
     ],
     1 => [
              'volume' => 145,
              'lowPrice' => 1009.99,
              'date' => "2016-12-31 14:23:51"
     ],
     2 => [
              'volume' => 19,
              'lowPrice' => 985.99,
              'date' => "2016-12-21 09:37:13"
     ],
     3 => [
              'volume' => 2984,
              'lowPrice' => 749.99,
              'date' => "2017-01-01 19:37:22"
     ],
];

$lowestPrice = array_reduce(
    $orders,
    function($c, $v)
    {
        if ($c === null)
            return $v["lowPrice"];

        return $v["lowPrice"] < $c ? $v["lowPrice"] : $c;
    }
);