我如何从多维数组中获得对应的键到另一个键



我有一个多维数组,格式如下:

$array = array (
  0 => 
    array (
      'date' => '2013-03-25',
      'name' => 'Bob',
      'time' => '11'
    ),
  1 => 
    array (
      'date' => '2013-03-25',
      'name' => 'Brian',
      'time' => '13'
    ),
  2 => 
    array (
      'date' => '2013-03-26',
      'name' => 'Jack',
      'time' => '14'
    ),
  3 => 
    array (
      'date' => '2013-03-26',
      'name' => 'Bob',
      'time' => '14'
    )
);

我正试图得到每个日期的名称和相应的时间。我使用以下方法获得了名称:

$array2 = array();
    foreach($array as $item) {
    $array2[$item['date']][] = $item['name'];
    }

,然后使用:

foreach($array2[$date] as $name)

对返回的名称运行查询。但是我不确定如何在第二个foreach循环中为每个'name'键获得相应的'time'键。

为什么不想为每个date键存储nametime ?

$array2 = array();
foreach ($array as $item) {
  $array2[$item['date']] []= array($item['time'], $item['name']);
}

您可以使用以下代码访问名称和时间:

foreach ($array2 as $row) {
  $name = $row[0];
  $time = $row[1];
}

你可以试试

$list = array();
foreach ( $array as $k => $item ) {
    $list[$item['date']][] = array(
            $item['name'],
            $item['time']
    );
}
foreach ( $list as $date => $data ) {
    echo $date, PHP_EOL;
    foreach ( $data as $var ) {
        list($name, $time) = $var;
        echo $name, " ", $time, PHP_EOL;
    }
    echo PHP_EOL;
}

输出
2013-03-25
Bob 11
Brian 13
2013-03-26
Jack 14
Bob 14

尝试以下操作:

foreach($array as $item) {
   $array2[$item['date'][] = array('name' => $item['name'], 'time' => $item['time']);
}
foreach($array2[$date] as $name) {
   echo $name['name'] . ' => ' . $name['time'] . "n";
}

相关内容

  • 没有找到相关文章

最新更新