使用 Laravel 数组助手访问嵌套数组中的值

Posted

技术标签:

【中文标题】使用 Laravel 数组助手访问嵌套数组中的值【英文标题】:access values in nested array using Laravel array helpers 【发布时间】: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() 方法显示它们

【问题讨论】:

【参考方案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

以上是关于使用 Laravel 数组助手访问嵌套数组中的值的主要内容,如果未能解决你的问题,请参考以下文章

选择数组中的值,分离并查询数据库 laravel

验证数组中的 Laravel 嵌套规则

在 React Native 中访问嵌套数组的值

如何使用关系在laravel中的数据库中插入嵌套的二维数组

将嵌套数组从控制器传递到 laravel 中的视图

循环遍历 Laravel Blade 模板中的嵌套数组