PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何从foreach循环php中的对象数组中删除对象大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据库返回的用户对象,如下所示:
[
    {
        "id":1,"name":"Bob","category":"admin","email":"test1@test.com","phone":"123456789","gender":"male",},{
        "id":2,"name":"John","category":"user","email":"john@test.com",{
        "id":3,"name":"Jane","email":"jane@test.com","gender":"female",]

现在,我想循环遍历所有用户对象,并删除其category属性为user的所有用户,以便生成用户对象仅保留为admin类别.

我想用foreach循环来做这个.请问我该如何解决这个问题,或者我有什么更好的方法来实现这个目标?

我猜这个数组是JSON格式的吗?无论如何..我修复了你的无效JSON,所以你应该能够看到它是如何完成的.
$json = '

[{
    "id": 1,"name": "Bob","category": "admin","email": "test1@test.com","phone": "123456789","gender": "male"
},{
    "id": 2,"name": "John","category": "user","email": "john@test.com",{
    "id": 3,"name": "Jane","email": "jane@test.com","gender": "female"
}]

';

$array = json_decode($json,truE); //Fixed and converted JSON into PHP Assoc Array 

foreach($array as $k=>$v) { 
    foreach ($arraY[$k] as $key=>$value) { 
      if ($key === "category" && $value === "user") { //If Value of 2D is equal to user and cat

          unset($arraY[$k]); //delete from Array 
      }
    }  
}

var_dump($array); //Output Array

产量

array(2) {
    [0] => array(6) {
        ["id"] => int(1)["name"] => String(3)
        "Bob" ["category"] => String(5)
        "admin" ["email"] => String(14)
        "test1@test.com" ["phone"] => String(9)
        "123456789" ["gender"] => String(4)
        "male"
    }[2] => array(6) {
        ["id"] => int(3)["name"] => String(4)
        "Jane" ["category"] => String(5)
        "admin" ["email"] => String(13)
        "jane@test.com" ["phone"] => String(9)
        "123456789" ["gender"] => String(6)
        "female"
    }
}

编辑

*正如@sevavietl在评论中指出的那样,如果数组的任何其他元素被称为user,那么这将被删除.我已经将代码更改为现在测试密钥(类别)以及值. *

大佬总结

以上是大佬教程为你收集整理的如何从foreach循环php中的对象数组中删除对象全部内容,希望文章能够帮你解决如何从foreach循环php中的对象数组中删除对象所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。