Php 从数组中获取唯一的顶级值
这是我的对象数组:Php 从数组中获取唯一的顶级值,php,arrays,Php,Arrays,这是我的对象数组: $prob[] = (object) array( "value" => ($pos_Count + 1)/ ($totalPOS_count + $distinct_pos_Count), "tag" => $row1['tag'], ); 在这里,我排序并回显前5个值数组值 uasort ($prob,
$prob[] = (object) array(
"value" => ($pos_Count + 1)/ ($totalPOS_count + $distinct_pos_Count),
"tag" => $row1['tag'],
);
在这里,我排序并回显前5个值数组值
uasort ($prob, function($a, $b) {
if ($a->value == $b->value) {
return 0;
}
return ($a->value < $b->value) ? 1 : -1;
});
$prob = array_slice($prob, 0, 5);
foreach ($prob as $array)
{
echo "Tag :". $array->tag." Probablity :".$array->value."<br/>";
}
它应该打印带有其值的不同标记。而不是打印两次相同的标签,因为它是在这里做的设计和服务
这是正确的:
Tag :articles Probablity :0.0022321428571429
Tag :Fun Probablity :0.0012771392081737
Tag :Facebook Probablity :0.0012771392081737
Tag :delivery Probablity :0.0012771392081737
Tag :Supplier Probablity :0.0012771392081737
因此,我如何在此处仅回显不同的前5个标记/这将替换阵列切片以仅获取唯一的标记:
$prob[] = (object) array("value" => "DISPLAY ME", "tag" => 1,);
$prob[] = (object) array("value" => "DO NOT DISPLAY ME","tag" => 1,);
$prob[] = (object) array("value" => "DISPLAY ME","tag" => 2,);
$new_prob = array();
$count = 0;
foreach ($prob as $array) {
if (!array_key_exists($array->tag, $new_prob)) {
$new_prob[$array->tag] = $array->value;
if (++$count == 5) { // Number of unique elements to keep
break;
}
}
}
foreach ($new_prob as $key => $value) {
echo "Tag :". $key." Probablity :".$value."<br/>";
}
$prob[] = (object) array("value" => "DISPLAY ME", "tag" => 1,);
$prob[] = (object) array("value" => "DO NOT DISPLAY ME","tag" => 1,);
$prob[] = (object) array("value" => "DISPLAY ME","tag" => 2,);
$new_prob = array();
$count = 0;
foreach ($prob as $array) {
if (!array_key_exists($array->tag, $new_prob)) {
$new_prob[$array->tag] = $array->value;
if (++$count == 5) { // Number of unique elements to keep
break;
}
}
}
foreach ($new_prob as $key => $value) {
echo "Tag :". $key." Probablity :".$value."<br/>";
}
Tag :1 Probablity :DISPLAY ME
Tag :2 Probablity :DISPLAY ME