📜  php 按属性从数组中删除对象 - PHP (1)

📅  最后修改于: 2023-12-03 14:45:24.068000             🧑  作者: Mango

PHP 按属性从数组中删除对象

在 PHP 中,我们可以使用 unset 关键字来从数组中删除一个指定的元素。如果我们想要按对象的某个特定属性来删除对象,我们可以使用循环遍历数组,并根据属性值进行判断和删除。

以下是一个示例代码片段,演示了如何按属性从数组中删除对象:

// 创建一个包含对象的数组
$users = [
    new User('John', 25),
    new User('Jane', 30),
    new User('Bob', 27)
];

// 定义一个 User 类
class User {
    public $name;
    public $age;
    
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// 要删除的属性值
$ageToRemove = 30;

// 遍历数组并删除匹配属性的对象
foreach ($users as $key => $user) {
    if ($user->age === $ageToRemove) {
        unset($users[$key]);
    }
}

// 打印剩余的对象
foreach ($users as $user) {
    echo $user->name . ' - ' . $user->age . PHP_EOL;
}

以上示例代码中,我们首先创建了一个 $users 数组,其中包含了三个 User 对象。然后,我们定义了一个 User 类,该类有两个属性 $name$age,构造函数用来初始化这些属性的值。

接下来,我们定义了一个变量 $ageToRemove,其值为要删除的属性值。然后,我们使用 foreach 循环遍历数组,并针对每个对象进行判断,如果对象的 age 属性值与 $ageToRemove 相等,则使用 unset 关键字从数组中删除该对象。

最后,我们再次使用 foreach 循环打印剩余的对象,以验证是否成功删除了指定属性值的对象。

希望以上示例能帮助您理解如何按属性从数组中删除对象。