删除数组和数组Laravel

时间:2018-10-07 15:29:58

标签: php laravel

我有数组

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

我的价值为x = 'a'

我需要删除阵列tagproduct的{​​{1}}中的名称,其中name == x

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

代码

$tag = 'a'

foreach($blogs as $blog) {

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

        if($detail_tag == $tag) {

            delete($detail_tag);
        }
    }
}

但是,我的意思是函数有一些错误(我在纸上写了代码,但没有测试:(),我的意思是@@没什么表现。谢谢

1 个答案:

答案 0 :(得分:2)

  • 您首先需要使用json_decode()函数将JSON对象转换为数组。此函数中的第二个参数设置为true,以便将JSON转换为关联数组。
  • 然后,在数组上循环。在foreach中,您还需要访问密钥,以便unset()的值。
  • 然后,使用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);
}