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

时间:2016-03-22 13:05:42

标签: php

我在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']
          ],
        ];

我想以某种方式生成:

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

我想要的关键点是在头上存储键和值的值。但是同一个命令。

具体关注值[$ i] [$ j]我希望存储$ values [' value']其中$ values [' key'] ===头[J]。

问题不在于如何显示数组$ values2,而是如何将$ values数组转换为$ values2。

我想要一点帮助。

1 个答案:

答案 0 :(得分:2)

试试这个;)

$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;
}