在PHP中,如何遍历对象数组并检查某个键值对是否重复,然后删除包含重复值的对象?因此,在下面的示例中,仅获取最高的5.2值,并删除其他较低的5.2值。
class Versions {
public $name;
public $version_num;
public function __construct($name, $version_num) {
$this->name = $name;
$this->version_num = $version_num;
}
}
$versions_array = [];
$version_one = new Versions("5.2", "5.2.1");
$version_two = new Versions("5.3", "5.3.1");
$version_three = new Versions("5.2", "5.2.2");
$version_four = new Versions("5.2", "5.2.3");
$version_five = new Versions("4.0", "4.0.0");
array_push($versions_array, $version_one, $version_two, $version_three,
$version_four, $version_five);
function my_sort($a,$b) {
return $a->version_num < $b->version_num;
}
usort($versions_array,'my_sort');
答案 0 :(得分:0)
可以通过在代码末尾添加以下代码来删除重复的版本。
$unique_array = [];
$current_name = null;
for ($i = 0; $i < count($versions_array); $i++) {
if ($versions_array[$i]->name != $current_name) {
array_push($unique_array, $versions_array[$i]);
}
$current_name = $versions_array[$i]->name;
}