【问题标题】:Adding multiple object values to array with key names使用键名将多个对象值添加到数组
【发布时间】:2019-02-07 00:27:02
【问题描述】:

在 Laravel 中,我正在尝试创建一个包含一些现有值的数组,这些值是从 JSON 对象的值构建的。

我设置了 4 个变量并且它们正确转储,但我想使用自己的键/名称将所有 4 个(用户名、权限、角色、访问权限)添加到数组 (IdentifierArray) 中,以便在添加数组时到会话并检查它,我可以看到每个值及其键/名称。

此时的代码:

$IdentifierArray = [];

$Username = $login->username;
$Perms = $login->permissions;
$Roles = $login->roles;
$Access = $login->access;

Session::put('Array of Values', $identifierArray);

所以我想以最好的方式将这些对象值添加到数组中,同时为每个对象设置一个键,例如:

Array(
    "username": $username value,
    "perms":$perms value,
    "Roles":$roles value,
    "Access":$Access value
)

【问题讨论】:

  • 那么,问题出在哪里?
  • 你不知道$identifierArray['key'] = 'value';
  • @u_mulder 但我只是想知道为数组中的 4 个对象中的每一个添加键

标签: php arrays laravel


【解决方案1】:

另一种方式,等于@danboh:

$IdentifierArray = [
  "username" => $login->username,
  "permissions" => $login->permissions,
  "roles" => $login->roles,
  "access" => $login->access
];

【讨论】:

    【解决方案2】:

    为什么不使用常规的 PHP 数组?喜欢:

    $IdentifierArray["username"] = $login->username;
    $IdentifierArray["permissions"] = $login->permissions;
    $IdentifierArray["roles"] = $login->roles;
    $IdentifierArray["access"] = $login->access;
    

    【讨论】:

    • 我可以这样做,我只是不确定在 laravel 中是否有更好的方法。不过,这应该仍然可以完成工作,谢谢!
    • 在这种情况下,请查看集合中的 toArray() 方法laravel.com/docs/5.7/collections#method-toarray
    【解决方案3】:

    您可以使用array_only 助手让您的生活更轻松:

    $identifierArray = array_only(
        json_decode($login, true), 
        ['username', 'permissions', 'roles', 'access']
    );
    

    另一种选择是使用only() 收集方法:

    collect(json_decode($login, true))
        ->only(['username', 'permissions', 'roles', 'access'])
        ->all();
    

    【讨论】:

      猜你喜欢
      • 2022-12-28
      • 2021-06-21
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2023-01-19
      • 1970-01-01
      相关资源
      最近更新 更多