脚本宝典收集整理的这篇文章主要介绍了PHP多维数组:用两个值的串联替换所有键,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
myExistingArray (size=99999 VERY Big) public 0 => array (size=3) 'key1' => string '15504' 'key2' => string '20' 'count' => string '1' public 1 => array (size=3) 'key1' => string '15508' (length=5) 'key2' => string '20' (length=2) 'count' => string '2' (length=1) public 2 => array (size=3) 'key1' => string '15510' (length=5) 'key2' => string '20' (length=2) 'count' => string '5' (length=1) ....many more similar ITems
我想将它转换为一个非常简单的数组,其中来自“key1”和“key”的前值被连接成一个新的键,指向相应的“count”值,如下所示:
myNewArray (size=99999 VERY BIG) <key1>_<key2> => <count> 15504_20 => string '1' (length=1) 15508_20 => string '2' (length=1) 15510_20 => string '5' (length=1)
性能对我来说非常重要,因为外部阵列有几千个项目. PHP中有快速方法吗?我得到的唯一的东西是一个简单的迭代,但这对我来说似乎很慢:
// works but I am looking for a faster version $myNewArray = array(); foreach ($myExistingArray as $item) { $myNewArray [$item["key1"]."_".$item["key1"]]=$item["count"]; }
编辑/基础问题
有些人正确地补充说我当前的解决方案已经在O(n)中并且提到PHP中没有内置函数来加速这个.
我从MysqL数据库查询中获取“myExistingArray”.我基本上有工作对象,并希望按状态和event_id对它们进行分组.查询与此类似:
select count(job.id) as count,job.status as key1,job.event_id as key2 From job group by job.status,job.event_id
我想重新排列密钥,以便稍后我可以轻松访问具有特定状态的特定事件的作业计数.
array_map
函数来转换PHP中的数组,但不幸的是它们都不能改变您想要转换的数组的键. array_walk将保留密钥,但不会改变它们.可悲的是,不,没有内置的功能来做你所要求的.
以上是脚本宝典为你收集整理的PHP多维数组:用两个值的串联替换所有键全部内容,希望文章能够帮你解决PHP多维数组:用两个值的串联替换所有键所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。