新手求教关于数组的问题,大神指教。
程序员文章站
2024-01-13 20:26:34
...
我有如下一个二维数组,没截取全可能有几百条。
这样一个数组我怎么只要里面count 数值最大得前10个呢,其余得都不要了。
主要是用array_multisort来给数组排序,如果php版本不能用array_column函数就只能自己去foreach组$count数组了
这样一个数组我怎么只要里面count 数值最大得前10个呢,其余得都不要了。
array (size=148) 0 => array (size=4) 'id' => string '31' (length=2) 'cjShow' => string '未知' (length=6) 'cjValues' => string '1' (length=1) 'count' => string '64' (length=2) 1 => array (size=4) 'id' => string '465' (length=3) 'cjShow' => string '沈铁A区' (length=10) 'cjValues' => string '2' (length=1) 'count' => string '5' (length=1) 2 => array (size=4) 'id' => string '466' (length=3) 'cjShow' => string '沈铁B区' (length=10) 'cjValues' => string '3' (length=1) 'count' => string '3' (length=1) 3 => array (size=4) 'id' => string '467' (length=3) 'cjShow' => string '沈铁C区' (length=10) 'cjValues' => string '4' (length=1) 'count' => string '2' (length=1)4=>5=>...更多
回复讨论(解决方案)
foreach($arr as $v) $r[] = v['count'];array_multisort($r, SORT_DESC, $arr);$res = array_slice($arr, 0, 10);
$arr = [ [ 'id' => '31', 'cjShow' => '未知', 'cjValues' => '1', 'count' => '64', ], [ 'id' => '465', 'cjShow' => '沈铁A区', 'cjValues' => '2', 'count' => '5', ], [ 'id' => '466', 'cjShow' => '沈铁B区', 'cjValues' => '3', 'count' => '3', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '2', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '1', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '10', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '11', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '12', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '23', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '24', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '25', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '26', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '27', ], [ 'id' => '467', 'cjShow' => '沈铁C区', 'cjValues' => '4', 'count' => '28', ], ];$count = array_column($arr, 'count');array_multisort($count, SORT_DESC, $arr);$b = array_slice($arr, 0, 10);var_dump($b);
主要是用array_multisort来给数组排序,如果php版本不能用array_column函数就只能自己去foreach组$count数组了