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

问题描述 投票:0回答:1

我使用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_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

我错过了什么?

php
1个回答
0
投票

从数组中提取value字段:

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

arsort排序阵列。如果您打开手册,您将看到arsort

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

所以,显然你需要另一个功能,我想只是rsort

© www.soinside.com 2019 - 2024. All rights reserved.