将包含对象的数组转换为不带 foreach 的关联数组

2024-04-02

我有一个类似的数组(json_decode 的结果):

array(2) {
  [0]=>
  object(stdClass)#1 (3) {
    ["key"]=>
    string(6) "sample"
    ["startYear"]=>
    string(4) "2000"
    ["endYear"]=>
    string(4) "2015"
  }
  [1]=>
  object(stdClass)#2 (3) {
    ["key"]=>
    string(13) "second_sample"
    ["startYear"]=>
    string(4) "1986"
    ["endYear"]=>
    string(4) "1991"
  }
}

我想将其转换为数组,如下所示:

 array(2) {
  ["sample"]=>
  array(2) {
    ["startYear"]=>
    string(4) "2000"
    ["endYear"]=>
    string(4) "2015"
  }
  ["second_sample"]=>
  array(2) {
    ["startYear"]=>
    string(4) "1986"
    ["endYear"]=>
    string(4) "1991"
  }
}

有没有美丽的方法来做到这一点(目前我正在使用 foreach,但我不确定这是最好的解决方案)。

添加了代码示例:

<?php
$str='[{"key":"sample","startYear":"2000","endYear":"2015"},{"key":"second_sample","startYear":"1986","endYear":"1991"}]';

$arr=json_decode($str);

var_dump($arr);

$newArr=array();

foreach ($arr as $value){
$value=(array)$value;
$newArr[array_shift($value)]=$value;

}

var_dump($newArr);

您可以使用数组缩减 http://php.net/manual/ro/function.array-reduce.php

$myArray = array_reduce($initialArray, function ($result, $item) {
    $item = (array) $item;

    $key = $item['key'];
    unset($item['key']);

    $result[$key] = $item;

    return $result;
}, array());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将包含对象的数组转换为不带 foreach 的关联数组 的相关文章

  • 我如何向 Windows Server IIS 7 中的文件夹授予权限

    我是 PHP 和 Windows Server 新手 在查看我在 PHP 中创建的表单时遇到以下错误 Error in exception handler The stream or file C inetpub wwwroot wrp a
  • Laravel 5 通过外部 API 对用户进行身份验证

    我想知道是否可以扩展内置身份验证以使用外部 API 来对用户进行身份验证 我是 Laravel 新手 非常感谢您的帮助 我正在 Laravel 5 2 中为我的客户制作一个自定义应用程序 但我无法直接访问他们的数据库服务器 我只能调用他们的
  • 是否存在类似于适用于 Ruby 的 ActiveMerchant 的 PHP 项目?

    我很好奇是否有人知道 ActiveMerchant 中存在的具有类似通用支付处理器功能的 PHP 功能 如果您正在寻找类似 PHP 中的 Active Merchant 的内容 请检查this http github com akDevel
  • 添加产品属性列以在 Woocommerce 中编辑订单页面

    对此的任何帮助都非常感激 到目前为止尝试了很多方法都无济于事 包括这里的建议 将产品简短描述添加到 Woocommerce 管理订单预览 https stackoverflow com questions 49755552 add prod
  • 仅当用户打印时如何重定向到另一个页面

    我一直在尝试找到一种在用户实际打印时重定向到另一个页面的方法 也就是说 只有当他们从打印时打开的选项卡中单击该打印按钮时 我才想重定向 我不想要这种方法 function myFunction window print window loc
  • StrRev() 不支持 UTF-8 [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个代码来替换非阿拉伯支持的程序中支持的阿拉伯文本因为我需要在替换后反转文本 但它显示一些垃圾内容而不是想要的结果 这是代码 结果 After Reverse 我需要它是原来的样子 但相反 不是垃圾
  • 在非 WordPress php 页面之外显示 WordPress 帖子

    我需要在非 WordPress php 页面中显示 WordPress 博客文章 我已经尝试过以下代码
  • 雄辩的致命错误:参数传递的实例不正确

    我正在使用 Slim 和 Eloquent 在 PHP 中构建端点系统 如上所述here http www slimframework com news slim and laravel eloquent orm 在我的本地开发中运行它时
  • 字符串的渐进单词组合

    我需要获得字符串的渐进单词组合 例如 这是字符串 输出 这是字符串 这是 这个字符串 是字符串 这 是 细绳 你知道类似的算法吗 我需要php语言 谢谢 这是解决您问题的简单代码 我将每个字符串递归地连接到数组中的其余字符串 string
  • Gmail 搜索怎么这么快?

    搜索这么多字符的最有效方法是什么 你怎么认为 假设网站是用 PHP 和 MySQL 构建的 我应该学习什么才能尽可能有效地构建它 有什么我应该学习的算法吗 文本索引算法 https stackoverflow com questions 4
  • MySQL分层存储:搜索所有父母/祖父母等。给定子节点 id 的节点?

    我使用分层模型存储类别 如下所示 CATEGORIES id parent id name 1 0 Cars 2 0 Planes 3 1 Hatchbacks 4 1 Convertibles 5 2 Jets 6 3 Peugeot 7
  • 分页当前链接未突出显示

    我遇到了一个奇怪的问题 我当前的分页链接未突出显示 我制作的分页网址如下所示 site com list 50 some value 一切工作正常 但当前视图中的分页链接未突出显示 我检查了CSS 没问题 我猜问题出在库上 这是我的代码 我
  • 将平面数组拆分为分组子数组,其中包含输入数组中连续键的值

    我有一个数组array diff函数 如下所示 Array 0 gt world 1 gt is 2 gt a 3 gt wonderfull 5 gt in 6 gt our 正如您所看到的 键 3 和键 5 之间有一个间隙 即没有键 4
  • 避免刷新时上传图片

    我正在使用最简单的图像上传形式 我非常希望保持这种方式 只需要一些 php 代码看起来像这样
  • PHP、in_array 和数组中的快速搜索(到最后)

    我对在数组中进行快速搜索的更好方法有疑问 我正在谈论一个特定的情况 假设我有一个数组 L A B C 当我开始时 当程序运行时 L 可能会增长 但到最后 当我进行搜索时 一个可能的原因是 L A B C D E 事实是 当我搜索时 我想要找
  • 为简单应用程序生成 PHAR

    我正在尝试使用 Symfony2 控制台库构建 CLI 工具 我已经有了一些基本的工作 现在我想将其打包为一个 Phar 我读过一些示例 但我看到的示例非常简单 3 个文件 没有命名空间等 In my src 目录我有以下内容 Above
  • 返回导航缓存 - IE

    当我在 IE 11 上运行 Web 应用程序时 收到如下警告消息 DOM7011 此页面上的代码禁用了后退和前进缓存 为了 更多信息 请参阅 http go microsoft com fwlink LinkID 291337 http g
  • Twitter URL 编码

    我们即将发起一场小小的推特圣诞竞赛 但我遇到了一些小障碍 要进入 人们需要按以下格式发布推文 user blah blah blah hashtag 目前 我有一个表单 他们可以在其中输入答案 废话 废话 废话 和一个 PHP 脚本 该脚本
  • 如何从一行获取数据并移动到模态?拉拉维尔 5.4

    我有一个表 其中列出了数据库中的产品 其中包含 ID 名称 描述以及其他数据类型 我创建了一个按钮 该按钮将调用模态来显示有关产品的更多详细信息 但是模态始终显示表中第一个产品的详细信息 而不是与其相关的 ID 我的桌子 我的表代码 tab
  • C++ 中是否有与 PHP 的explode() 函数等效的函数? [复制]

    这个问题在这里已经有答案了 可能的重复 在 C 中分割字符串 https stackoverflow com questions 236129 splitting a string in c 在 PHP 中 explode 函数将获取一个字

随机推荐

  • 我的锚链接不会从页面顶部开始

    我不确定发生了什么 我有两个页脚 一个页脚是侧边栏 另一个页脚是页面底部的常规页脚 我底部页脚中的锚标记链接到我的 关于 页面 将我带到页面底部而不是从顶部开始 而侧边栏页脚中的锚标记将我带到页面中间 加载时 其他锚链接也会将我带到页面的中
  • Android 清单文件中的 android:immersive 属性是什么?

    我正在为 Google Glass 开发一个应用程序 但我的活动遇到了问题 当我有 7 到 10 秒没有与他们互动时 他们就结束了 屏幕关闭后 我轻敲玻璃再次唤醒它 我的活动就会消失 我就可以开机了ok glass屏幕 我进行了很多搜索 但
  • NgxMatDatetimePicker 不可分配给 MatDatepickerBase 类型

    今天我使用创建了一个新的 Angular 项目角度 11 0 0 然后我安装了 angular material components datetime picker这是我的 package json 文件中读取的内容的一部分 angula
  • 如何传递对象参数来获取 Web api 中的方法?

    如何将对象参数传递给 get 方法 我搜索了很多 例如如何将参数传递给asp net web api get方法 https stackoverflow com questions 45766147 how to pass paramete
  • Insert 语句中的记录数 (Oracle)

    我想报告 Oracle 插入语句中插入的记录数 我是从语句插入的 因此我可以运行两次选择并进行计数 但我宁愿将其全部保留在一个语句中 有办法吗 在 PL SQL 中执行 INSERTSQL ROWCOUNT给出插入的行数 在 C 中执行 I
  • 使用 Angular 材质按列过滤谓词表

    我想使用谓词过滤器按列过滤我的 mat table 结果 我已经使用了一个简单的过滤器 但它过滤了所有列中的所有数据 我搜索类似的主题 但我不知道如何使用它 我尝试对所有列重复我的代码 但不起作用 请参阅下面的代码
  • 如何在 iPhone 通讯录中搜索特定电话号码?

    我正在开发一个使用 bonjour 连接到另一部 iPhone 的应用程序 它的功能之一是当我连接到其他设备时 它会自动检查我是否有其他人的电话号码 所以我的问题是如何检查我的地址簿中其他设备提供的电话号码 这是从我的地址簿方法之一中提取的
  • 如何以编程方式获取 Linux 中设备/分区的 uuid?

    我对 Linux 编程非常陌生 我的问题是 有没有办法以编程方式读取 Linux 中设备或分区的 UUID 是否有用于用户空间应用程序的 C C API 我发现了一些命令sudo vol id uuid dev sda1 sudo blki
  • Windows Docker mongo 容器不适用于卷挂载

    我有以下 docker 命令 docker run v c data data db mongo 我从 docker mongo 收到以下错误响应 MongoDB starting pid 1 port 27017 dbpath data
  • iOS 谷歌地图更改默认标记拖动行为

    我正在研究 Google 地图 api 目前 当我们尝试拖动标记时 我们必须按住几秒钟 然后 mapView 上升几个点 然后我们才能拖动标记 我想改变这种行为 我可以覆盖minimumPressDuration of UILongPres
  • 无法捕获视图层内的蒙版

    因此 我使用以下代码将图像蒙版应用到 UIView 层 CALayer maskLayer CALayer layer UIImage maskImage self image image maskLayer contents id mas
  • 进行 Maven 构建时 Jackson 依赖版本被覆盖

    我有一个完美运行的项目 我能够成功构建和部署 昨天 作为开发的一部分 我必须在我的项目中为 Jackson jar 添加以下 Maven 依赖项 然后mvn clean install开始失败
  • 如果我们有 GIL,为什么我们还需要线程锁?

    我相信这是一个愚蠢的问题 但我仍然找不到它 其实最好分成两个问题 1 我是否正确 我们可以有很多线程 但由于 GIL 在某一时刻只有一个线程正在执行 2 如果是这样 为什么我们还需要锁 我们使用锁来避免两个线程尝试读 写某个共享对象的情况
  • Pandas 内部合并/连接返回所有行

    我试图根据两个数据帧中存在的列来合并两个数据帧 仅保留两个数据集的交集 期望的结果是 foo bar foobar x y z x j i x y z j i a 1 2 a 9 0 a 1 2 9 0 b 3 4 b 9 0 b 3 4
  • Android 语音识别服务在 <= Ice Cream Sandwich 上速度慢得多

    我有一个正在实现 RecognitionListener 的服务 如下所示 Android 语音识别作为 Android 4 1 和 4 2 上的服务 https stackoverflow com questions 14940657 a
  • 静音时的 CSCore 环回录音

    我在用着CSCore WasapiLoopbackCapture录制系统声音 但当系统没有声音时 根本不录音 例如 在播放音乐并录制音乐时 输出文件的持续时间小于曲目的持续时间 我希望它即使在系统中没有声音时也能继续录制 但我没有找到任何属
  • DisplayFormat 数据注释不起作用

    我的模型类中有以下数据注释 Required ErrorMessage Required DisplayFormat ApplyFormatInEditMode true DataFormatString 0 MM dd yyyy publ
  • Safari 中的 css 颜色渲染不同

    我正在尝试为我的网络应用程序选择颜色 但意识到与 Firefox 或 Chrome 相比 Safari 呈现样式表的方式存在巨大差异 屏幕截图中的红色应该是 ff3366 但 safari 似乎选择渲染 ff0036 我不知道为什么我找不到
  • 在 Javascript 中处理多个按键事件的最佳方法是什么?

    游戏中按空格键会进行角色射击 出现确认框时按空格键会使该框消失 高分形式按空格键会在输入框中添加一个空格 在此示例中 同一键有多个事件 但一次仅触发一个事件 是否有通用 或特定于Javascript 方法或编程方式将事件添加到某个键 以便它
  • 将包含对象的数组转换为不带 foreach 的关联数组

    我有一个类似的数组 json decode 的结果 array 2 0 gt object stdClass 1 3 key gt string 6 sample startYear gt string 4 2000 endYear gt