【问题标题】:access values in nested array using Laravel array helpers使用 Laravel 数组助手访问嵌套数组中的值
【发布时间】:2022-01-20 23:03:09
【问题描述】:

我想访问这个嵌套数组名为 tags 的父元素中名为 name 的元素的值:

$array = Post::whereIn('id', [1,2,3,4])->with('tags')->get()->toArray();

dd($array)

array:4 [▼
  0 => array:5 [▼
    "id" => 1
    "text" => "The First"
    "tags" => array:3 [▼
      0 => array:5 [▼
        "id" => 4
        "name" => "Tag 4"
        "pivot" => array:2 [▶]
      ]
      1 => array:5 [▼
        "id" => 4
        "name" => "Tag 4"
        "pivot" => array:2 [▶]
      ]
      2 => array:5 [▼
        "id" => 5
        "name" => "Tag 5"
        "pivot" => array:2 [▶]
      ]
    ]
  ]
  1 => array:5 [▼
    "id" => 2
    "text" => "The Second"
    "tags" => array:1 [▼
      0 => array:5 [▼
        "id" => 4
        "name" => "Tag 4"
        "pivot" => array:2 [▶]
      ]
    ]
  ]
  2 => array:5 [▶]
  3 => array:5 [▶]
]

我需要一个看起来更像这样的数组中的数据:

        ['id' => '4','name' => 'Tag 4'],
        ['id' => '4','name' => 'Tag 4'],
        ['id' => '5','name' => 'Tag 5'],
        ['id' => '4','name' => 'Tag 4'],
  

我目前正在尝试:

use Illuminate\Support\Arr;

$tags = Arr::get($array, 'tags.name');

returns Null

然后我想从这里挑选出唯一值以使用我试图获取的数组上的 unique() 方法显示它们

【问题讨论】:

    标签: arrays laravel


    【解决方案1】:

    你可以这样使用

    foreach($array as $tag) {
    $var =  $tag['tags'];
    // or this way as well
    $var1 = $tags = Arr::get($tag, 'tags.name');
    }
    

    【讨论】:

      【解决方案2】:

      如果您使用的是 PHP,那么我会创建一个 foreach

      foreach($array->getTags() as $tag) {
        dd($tag);
      }
      

      【讨论】:

      • 它在 Laravel 项目中,所以 PHP
      猜你喜欢
      • 2019-04-17
      • 2016-02-26
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多