首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReCreate可读数组

ReCreate可读数组
EN

Stack Overflow用户
提问于 2014-02-07 00:46:00
回答 2查看 38关注 0票数 0

通过CSV,我有一个类似于下面的数组:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [0] => Agent Name
            [1] => Total Calls
            [2] => Customer Services 
            [3] => Voicemail 
        )

    [1] => Array
        (
            [0] => Paul
            [1] => 53
            [2] => 0
            [3] => 0
        )

    [2] => Array
        (
            [0] => Sarah
            [1] => 51
            [2] => 0
            [3] => 0
        )
)

我想整理一个数组,使其更具可读性和易用性。

我想要一个类似下面这样的数组:

代码语言:javascript
复制
Array
(
    [Paul] => Array
        (
            [Agent Name] => Paul
            [Total Calls] => 53
            [Customer Services ] => 30
            [Voicemail ] => 0
        )

    [Sarah] => Array
        (
            [Agent Name] => Sarah
            [Total Calls] => 51
            [Customer Services ] => 0
            [Voicemail ] => 0
        )

)

我想出了这个解决方案,它起作用了:

代码语言:javascript
复制
$fields = $report[0];
array_shift($report);

$data = array();

foreach($report as $row) {
      $data[$row[0]] = array();
      foreach($row as $k => $val) {
        $data[$row[0]][$fields[$k]] = $val;
      }
}

return $data;

有没有更快捷的方法来做这件事呢?

EN

回答 2

Stack Overflow用户

发布于 2014-02-07 01:00:58

试一试

代码语言:javascript
复制
$result =array();
for($i=1;$i<count($arr);$i++){
   $result[$arr[$i][0]] = array_combine(array_values($arr[0]),$arr[$i]);
 }

请参阅演示here

票数 0
EN

Stack Overflow用户

发布于 2014-02-07 01:15:31

你也许可以这样做:

代码语言:javascript
复制
$f = array_shift($report);

$a = array_combine(array_column($t = array_map(function ($r) use ($f)
{
  return array_combine($f, $r);
}
, $report), 'Agent Name'), $t);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21608901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档