我有一个多维数组,格式如下:
$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'键。
答案 0 :(得分:2)
为什么您不想为每个name
密钥存储time
和date
?
$array2 = array();
foreach ($array as $item) {
$array2[$item['date']] []= array($item['time'], $item['name']);
}
您可以使用以下代码获取姓名和时间:
foreach ($array2 as $row) {
$name = $row[0];
$time = $row[1];
}
答案 1 :(得分: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
答案 2 :(得分:0)
尝试以下方法:
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";
}