dongshao4207 2016-03-22 13:05
浏览 6
已采纳

显示在html表中的键对值。 密钥应该是标题[关闭]

I have the following array In php:

$values=[
          [
            ['key'=>"Name",'value'=>"John"],
            ['key'=>'Surname','value'=>"Doe"],
            ['key'=>"email",'value'=>'john@doe.com']
          ],
          [
            ['key'=>"Surname",'value'=>"Ichigo"], 
            ['key'=>'Name','value'=>"Kurosaki"],
            ['key'=>'email','value'=>'kurosakiighogo@soulsociety.com']
          ],
          [
            ['key'=>"email",'value'=>"monket.d@luffy.com"],
            ['key'=>'Name','value'=>"Monkey D."],
            ['key'=>'Surame','value'=>'Luffy']
          ],
        ];

And I want somehow to be generated as:

$values2=[
         head=>['Name','Surname','email'],
         values=>[
                   ["John","Doe","john@doe.com"],
                   ["Kurosaki","Ichigo","kurosakiighogo@soulsociety.com"],
                   ['Monkey D.','Luffy','monket.d@luffy.com']
                 ]
        ]

The key point I want is on head to be stored the keys and on values the values. But with the same Order.

To be specific on values[$i][$j] I want to be stored the $values['value'] where $values['key'] === head[j].

The problem is NOT HOW TO DISPLAY the array $values2 but HOW TO TRANSFORM $values array into $values2.

I want a bit of your help please.

  • 写回答

1条回答 默认 最新

  • dongluo3331 2016-03-22 13:16
    关注

    Try this ;)

    $values = [
      [
        ['key'=>"Name",
          'value'=>"John"],
        ['key'=>'Surname',
          'value'=>"Doe"],
        ['key'=>"email",
          'value'=>'john@doe.com']
      ],
      [
        ['key'=>"Surname",
          'value'=>"Ichigo"],
        ['key'=>'Name',
          'value'=>"Kurosaki"],
        ['key'=>'email',
          'value'=>'kurosakiighogo@soulsociety.com']
      ],
      [
        ['key'=>"email",
          'value'=>"monket.d@luffy.com"],
        ['key'=>'Name',
          'value'=>"Monkey D."],
        ['key'=>'Surname',
          'value'=>'Luffy']
      ],
    ];
    
    $records = [];
    $keyIndex = [];
    foreach($values as $index=> $record){
      $thisRecord = [];
      foreach($record as $index1=> $field){
        if(!$index){
          $keyIndex[$field['key']] = $index1;
          $records['head'][] = $field['key'];
        }
        $thisRecord[$keyIndex[$field['key']]] = $field['value'];
      }
      ksort($thisRecord);
      $records['values'][] = $thisRecord;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 怎样才能让鼠标沿着线条的中心线轨迹移动
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?