如何将此多维数组转换为关联数组?

时间:2013-07-07 03:38:09

标签: php arrays multidimensional-array associative-array

我不是要求你为我编写代码。任何方向都会受到赞赏。

我有一个以下格式的数组:

Array
(
[0] => Array
  (
  [title] => Here is the first title
  [count] => 765
  [description] => Description
  )
[1] => Array
  (
  [title] => The second title
  [count] => 90
  [description] => Description
  [other] => Data
  )
[2] => Array
  (
  [title] => A third title
  [count] => 1080
  [description] => Description
  )
)

我想知道如何使用'title'和'count'数据将其转换为类似下面的内容。

Array
(
[Here is the first title] => 765
[The second title] => 90
[A third title] => 1080
)

目前我已经创建了以下代码:

$results = array();
foreach ($inputarray as $value) {
    $results[] = $value["count"];
}

这给了我以下内容:

Array
(
[0] => 765
[1] => 90
[2] => 1080
)

但我不确定如何使标题数据成为其关联计数数据的新密​​钥。有没有这样做的功能?可以对上述内容进行修改还是更复杂?谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

使用标题显式填充新数组的键:

$results = array();
foreach ($inputarray as $value) {
    $results[$value["title"]] = $value["count"];
}

请注意,任何具有相同标题的条目都将覆盖前一个条目,因为数组键必须是唯一的。我怀疑这是实现目标的最佳方式,但这就是你所要求的。

答案 1 :(得分:0)

可以采用的方法是使用array_reduce和一个闭包(需要PHP 5.3 +)

$res = array_reduce($array, function (&$results, $v){
     $results[$v["title"]] = $v["count"];
}, array());