我在PHP中有一个数组,var_dump($result)
方法显示如下结果:
array(6) { [0]=> array(1) { ["Start"]=> string(14) "1/8/2014 10:42" } [1]=> array(1) { ["Driving route"]=> string(14) "1/8/2014 10:59" } [2]=> array(1) { ["Lunch-Rest Break"]=> string(14) "1/8/2014 11:50" } [3]=> array(1) { ["Break"]=> string(14) "1/8/2014 12:03" } [4]=> array(1) { ["Waiting"]=> string(14) "1/8/2014 13:39" } [5]=> array(1) { ["End"]=> string(14) "1/8/2014 14:28" } }
我想打印每个键及其对应的值,所以我使用foreach循环来完成,但得到以下结果:
foreach($result as $activity => $time){
echo $result[$activity].' / '.$time.'</br>';
}
Array / Array
Array / Array
Array / Array
Array / Array
Array / Array
Array / Array
那我怎么能这样做呢?
答案 0 :(得分:4)
尝试这种方式。作为数组的示例,我只设置了两个值:
$arrays = array(
0=> array("Start"=>'1/8/2014 10:42'),
1=> array("Lunch-Rest Break"=>'1/8/2014 10:59')
);
foreach($arrays as $array){
foreach ( $array as $key =>$value){
echo $key .'-'. $value;
}
}
答案 1 :(得分:0)
你有嵌套数组,a.k.a多维数组。
当迭代它们时,你将结束另一个阵列:
foreach($result as $record){
echo $record[$activity].' / '.$time.'</br>';
}
答案 2 :(得分:0)
您可以使用递归函数(一个调用自身的函数)来循环任意数量的嵌套数组并处理内容。以下是一个示例: Live demo (click).
$myArr = [
'foo' => 'foo value',
'bar' => 'bar value',
'baz' => [
'nested foo' => 'nested foo value',
'nested bar' => 'nested bar value'
],
'qux' => 'qux value'
];
function foo($arr) {
foreach ($arr as $k => $v) {
if (is_array($v)) {
foo($v);
}
else {
echo "{$k} = {$v}<br>";
}
}
}
foo($myArr);
答案 3 :(得分:0)
您假设一个数组具有键/值对,但您提供的数组实际上是一个普通的整数索引数组,其值为另一个具有1个键/值对的数组。
你可以这样做:
foreach ($result as $arr) {
foreach ($arr as $activity => $time) {
echo $activity .'/'. $time;
}
}
外部循环将运行6次,每个外部循环内部循环一次。