使用键名将多个对象值添加到数组

时间:2019-02-06 14:54:25

标签: php arrays laravel

在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
)

3 个答案:

答案 0 :(得分:3)

另一种实现方式,等同于@danboh:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

您可以使用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();