[英]Changing a nested (multidimentional) array into key => value pairs in PHP
我有一个多维数组,看起来像这样:
Array ( [0] => Array ( [ClientID] => ec2173de2134fdsfg4fsdffcb4b5205 [Name] => ABC Widgets ) [1] => Array ( [ClientID] => e5dfgfdg2d760f640aadfgdfgdfg47b [Name] => Acme Co ) [2] => Array ( [ClientID] => b9dfgsdfg419085c3sdgffdsgfdg313 [Name] => 4321 Corp ) )
我想更改为以下内容:
Array ( ec2173de2134fdsfg4fsdffcb4b5205 => ABC Widgets e5dfgfdg2d760f640aadfgdfgdfg47b => Acme Co b9dfgsdfg419085c3sdgffdsgfdg313 => 4321 Corp )
最好的方法是什么? 另外,我是否最好将阵列以其原始格式存储并根据需要转换为其他格式? 谢谢您的协助
$flat = array();
foreach($multidim as $item)
$flat[$item['ClientID']] = $item['Name'];
一般而言,您是否会更好地保存原始表格还是无法解决的。 如果需要,应该存储它。
似乎您正在使用原始数据创建哈希表。 哈希表非常快速地访问和插入单个数据元素。 但是,您不能对记录中包含的数据运行查询-您只能基于唯一键进行检索或基于生成的键进行插入。
您可以将原始格式及其所有字段都用作“后端”,并生成一个哈希表,就像您演示的那样。 缺点是,每次生成该表时,都会花费CPU周期。
如果将这些数据放入数据库中,则数据库引擎将根据您所使用的特定查询的需要,来创建常规数据表(如第一个数据表)和哈希表(如第二个数据表)。 您也可以强制它基于某个数据库列创建哈希表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.