遍历PHP中的对象数组

时间:2019-05-04 20:36:02

标签: php

在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');

1 个答案:

答案 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;
}