如何从MySQL查询中计算关联数组的中值?

时间:2019-04-14 14:07:59

标签: php

我使用fetchAll(PDO::FETCH_ASSOC)得到一个值的关联数组 我得到以下数组:

Array ( [0] => Array ( [value] => 12.00000 ) [1] => Array ( [value] => 12.00000 ) [2] => Array ( [value] => 1001.00000 ) [3] => Array ( [value] => 1001.00000 ) [4] => Array ( [value] => 1.00000 ) [5] => Array ( [value] => 101.00000 ) [6] => Array ( [value] => 155.00000 ) [7] => Array ( [value] => 100.00000 ) [8] => Array ( [value] => 100.14300 ) [9] => Array ( [value] => 10123.12000 ) ) 

如何获取中间值?我不能只使用arsort并获取中间值,因为它是array中的一个数组,我被卡住了

如何做到?

编辑:我尝试使用array_column($array, 'value'),现在它提取了值,然后使用asort并得到了以下输出:

Array ( [4] => 1.00000 [0] => 12.00000 [1] => 12.00000 [7] => 100.00000 [8] => 100.14300 [5] => 101.00000 [6] => 155.00000 [2] => 1001.00000 [3] => 1001.00000 [9] => 10123.12000 ) 

因此,问题在于asort确实对数组进行了排序,但仅对输出进行了排序,但实际上并未对其进行排序,因此,例如$array[0]不是最小值(1.0000 ),但实际上是原始值12.00000

我想念什么?

1 个答案:

答案 0 :(得分:0)

使用以下方法从数组中提取value字段:

$values = array_column($array, 'value');
// now `sort` and do what you need
arsort($values);

arsort 对数组进行排序。如果您打开手册,将会看到arsort

  

对数组进行排序,以使数组索引保持与它们关联的数组元素的关联性

因此,显然您需要另一个功能,我想只是rsort