【问题标题】:PHP: key->value from two array elementsPHP:来自两个数组元素的键->值
【发布时间】:2014-07-14 11:01:55
【问题描述】:

基本上,我有一个数组,其中每个元素都是元素的键/值对,如下所示:

[myArray] => Array
        [0] => Array
                [id] => 121
                [name] => Value1
        [1] => Array
                [id] => 125
                [name] => Value2
        [2] => Array
                [id] => 129
                [name] => Value3
                ....

我想将其转换为:

[myArray] => Array        
        [121] => Value1
        [125] => Value2
        [129] => Value3
        ....

所以“id”元素成为键,“name”元素成为值。 PHP 是否有内置的东西(或者有一个聪明的技巧)来做到这一点?如果有更清洁的东西可用,我想避免明显的 foreach() 循环......

【问题讨论】:

  • 我不知道是否有内置函数来处理这个任务,但即使有,它肯定是使用某种循环结构来完成任务。一个简单的 foreach 循环就足够了。这是您的实施中的问题吗?

标签: php arrays


【解决方案1】:

如果您有 array_column 可用,您可以这样做:

array_column($myArray, 'name', 'id')

不过,我认为foreach很多更好的选择。

【讨论】:

  • 为什么要复杂的结合? array_column($myArray, 'name','id') 就足够了..
  • 啊。不知道索引参数。不错。
【解决方案2】:

PHP 5.5 有一个array_column() function 可以为你做这件事,如果你有幸已经在运行它的话。提交它的开发人员还 has a forwards-compatible version you can download 为早期版本的 PHP。

但是,您可以自己轻松滚动,或者只需针对您需要的特定情况使用 foreach 循环。

【讨论】:

  • 不幸的是,我们在 5.3 环境中运行,并且不会很快改变。不过谢谢,array_column() 正是我需要的 =)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多