我有2-d对象数组。我希望从数组中获得最高$prob[$i]->value
的前5个值。
$prob[$i] = new stdClass();
while ($row1 = @mysqli_fetch_array($selectTag))
{
$prob[$i]->value = ($pos_Count + 1)/ ($totalPOS_count + $distinct_pos_Count);
$prob[$i]->tag = $row1['tag'];
}
arsort($prob);
var_dump($prob);
此代码仅提供1个结果。
如何在$prob[$i]->value
的desc中获得前5个值?
答案 0 :(得分:0)
请尝试以下操作:
while ($row1 = @mysqli_fetch_array($selectTag)) {
$prob[] = (object) array(
"value" => ($pos_Count + 1)/ ($totalPOS_count + $distinct_pos_Count),
"tag" => $row1['tag'],
);
}
uasort($prob, function($a, $b) { return strcmp($a->value, $b->value) } );
var_dump(array_slice($prob, 0, 5));
我在您的代码中添加了一些内容:
$i
。我使用简单的技巧创建临时数组并将其转换为动态对象。uasort
定义您的排序功能。array_slice
从排序数组中获取前5个元素。