【问题标题】:How do I get corresponding keys to another key from multidimensional array?如何从多维数组中获取另一个键的对应键?
【发布时间】:2013-03-27 21:51:16
【问题描述】:

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

$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 循环中为每个“名称”键获取相应的“时间”键。

【问题讨论】:

    标签: php arrays multidimensional-array foreach


    【解决方案1】:

    为什么您不想为每个 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];
    }
    

    【讨论】:

    • 啊,是的,就是这样。谢谢。
    【解决方案2】:

    你可以试试

    $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
    

    【讨论】:

      【解决方案3】:

      尝试以下方法:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-23
        • 1970-01-01
        • 2015-05-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多