我如何从多维数组中获取其他密钥的相应密钥?
问题描述:
我有以下格式的多维数组:我如何从多维数组中获取其他密钥的相应密钥?
$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
密钥?
$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";
}
啊,是的,就是这样做的。谢谢。 – Nick 2013-03-27 23:10:01