php – 删除数组和数组Laravel中的值

我有阵列

Product:[
     {
       content:'',
       tag:[
         {
           name:'a',
         },
         {
           name:'b'
         }
       ]
     }
]

我有价值x =’a’

我需要删除名称== x的数组产品中的标签名称

我使用了两个foreach,一个foreach循环Product和一个foreach循环标记,然后检查条件if(name == x)并删除item

$tag = 'a'

foreach($blogs as $blog) {

    foreach(json_decode($blog->tag) as $detail_tag) {

        if($detail_tag == $tag) {

            delete($detail_tag);
        }
    }
}

但是,我的意思是功能有一些错误(我在纸上写代码,我不测试:()我的意思是没有性能@@.谢谢

解决方法:

>您需要先使用json_decode()函数将JSON对象转换为数组.此函数中的第二个参数设置为true,以便将JSON转换为关联数组.
>然后,循环遍历数组.在foreach中,您还需要访问键,以便取消设置()值.
>然后,使用json_encode()函数将数组转换回JSON对象.

尝试:

$tag = 'a';

foreach($blogs as $blog) {

  // convert to array using json_decode() (second parameter to true)
  $blog_arr = json_decode($blog->tag, true);

  // Loop over the array accessing key as well
  foreach( $blog_arr as $key => $detail_tag){

      if ($detail_tag === $tag) {
          // unset the key
          unset($blog_arra[$key]);
      }

   // Convert back to JSON object
   $blog_tag_modified = json_encode($blog_arr);
}

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...