当前位置: 首页 > 知识库问答 >
问题:

循环遍历数组集合并返回命名的键值对(Laravel/Eloquent)

颜实
2023-03-14

我正在与Laravel合作,目前我有一个雄辩的集合,该集合中有3个数组返回。每个数组中都有嵌套的模型集合。

结构是这样的:

Illuminate\Database\Eloquent\Collection {#1905 ▼
  #items: array:3 [▼
    0 => app\Models\User {#1804 ▶}
    1 => app\Models\User {#1805 ▶}
    2 => app\Models\User {#1806 ▶}
  ]
}

每个用户在扩展时都是这样

#attributes: array:3 [▼
        "user_id" => 12345
        "first_name" => "John"
        "last_name" => "Doe"]

我想要返回的是一个数组,只有user_id=

我尝试了传统的foreach,但索引一直返回为0=

有没有一种有效的方法来实现这一点?


共有1个答案

李宁
2023-03-14

由于user\u id是您正在提取的集合中的值,因此Pulk不起作用。

为什么不只选择你想要的字段...而不是从收藏中拿走你不需要的东西?

例如,这将返回一个数组数组,其键id和值就是该id。

User::select('id')->get()->toArray();
 [
     [
       "id" => 1,
     ],
     [
       "id" => 2,
     ],
]

但是要做你想做的事情,你可以使用map,只返回你需要的键值数据。下面是一个简短的例子:

$collection = [
  [
    "user_id" => 12345,
    "first_name" => "John",
    "last_name" => "Doe",
  ],
  [
    "user_id" => 12346,
    "first_name" => "John 2",
    "last_name" => "Doe",
  ],
  [
    "user_id" => 12347,
    "first_name" => "John 3",
    "last_name" => "Doe",
  ],
];

collect($collection)->map(function ($user) {
  return [
    "user_id" => $user["user_id"],
  ];
});

请记住,从一个开始数组开始就是这样的,因此在您的情况下,我假设您会这样做:

User::get()->map(function ($user) {
  return [
    'user_id' => $user->user_id,
  ];
});
 类似资料:
  • 我有一个对象数组,如下所示: 我想把它添加到一个退出的对象中,其中id是该对象的一个键,如下所示:

  • 问题内容: 我正在尝试遍历以下内容 我到目前为止所得到的: 有任何想法吗? 问题答案: 在您的代码中,元素是JSON对象的数组,而不是JSON对象本身。元件,和是JSON的一部分内部对象JSON阵列。 您需要遍历数组 版画 我不知道您的代码片段来自何处。

  • 问题内容: 我试图遍历一个json文件的对象数组以访问其变量的键和值,并使用jquery的getjson及其每个将它们附加到列表项。 我认为该解决方案应该与本文中的解决方案类似…但是我似乎无法使其完全发挥作用并显示结果…非常感谢您的帮助! json数据的格式如下: 并且html的格式应如下所示: 问题答案: 您要替换为空白数组,从而在运行时破坏数据。删除此行,它应该工作。 编辑 :您的代码中还有一

  • 假设每种颜色总是有一辆车。所以我总是在找一辆车,不多也不少。 如何确保始终有一个对象被找到并返回?

  • 我有一个配置对象。使用这个config对象,我通过在这个对象的键上附加一个字符串来填充必需的元素。我需要更新值的帮助

  • 在Visual Studio中,使用C#,我得到了三个类似于以下内容的数组: 布尔购物车表示复选框。现在我想做的是,使用一个按钮,检查勾选了哪些框,然后从数组商品中获取商品的名称,并从数组价格中获取商品的价格。然后,我将连接字符串,并将总和相加,然后将其显示在MessageBox中。显示。 我想我需要以某种方式将cart数组的索引与price和goods数组的相应索引联系起来。还是有更好的方法?可