【问题标题】:Changing a nested (multidimentional) array into key => value pairs in PHP在 PHP 中将嵌套(多维)数组更改为键 => 值对
【发布时间】:2009-07-04 05:56:00
【问题描述】:

我有一个如下所示的多维数组:

大批 ( [0] => 数组 ( [客户端 ID] => ec2173de2134fdsfg4fsdffcb4b5205 [名称] => ABC 小工具 ) [1] => 数组 ( [客户端 ID] => e5dfgfdg2d760f640aadfgdfgdfg47b [名称] => Acme Co ) [2] => 数组 ( [客户端 ID] => b9dfgsdfg419085c3sdgffdsgfdg313 [名称] => 4321 公司 ) )

我想改成以下:

大批 ( ec2173de2134fdsfg4fsdffcb4b5205 => ABC 小工具 e5dfgfdg2d760f640aadfgdfgdfg47b => Acme Co b9dfgsdfg419085c3sdgffdsgfdg313 => 4321 Corp )

最好的方法是什么?另外,将数组存储为原始格式并根据需要转换为其他格式会更好吗?感谢您的帮助

【问题讨论】:

    标签: php arrays


    【解决方案1】:
    $flat = array();
    foreach($multidim as $item)
        $flat[$item['ClientID']] = $item['Name'];
    

    一般无法回答您是否最好存储原始表单。如果需要,您应该存储它。

    【讨论】:

      【解决方案2】:

      看起来您正在使用原始数据创建一个哈希表。 哈希表对于访问和插入单个数据元素非常快。但是,您不能对记录中包含的数据运行查询 - 您只能根据唯一键检索或根据生成的键插入。

      您可以将原始格式及其所有字段用作“后端”,并生成一个与您演示的哈希表类似的哈希表。缺点是每次生成此表时,都会消耗 CPU 周期。

      如果您将此数据放入数据库,数据库引擎将根据您使用的特定查询的需要处理创建常规数据表(如您的第一个)和哈希表(如您的第二个)。您也可以强制它基于某个数据库列创建哈希表。

      【讨论】:

      • 用例是我正在使用 Campaign Monitor(电子邮件软件)API。哈希是属于客户端的 API 密钥。
      • 好吧,对于有关如何以及为什么以特定方式存储内容的问题,该建议仍然有效。祝你好运!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-20
      相关资源
      最近更新 更多