我需要从另一个已经存在的数组创建一个数组,从而形成一个新的数据结构。
此时我已经有了新的数组
http://phpfiddle.org/main/code/x0gn-1ikz
问题是:
在10:00:00 - 15:00:00的新阵列应该有3个记录:
Array
(
[10:00:00 - 15:00:00] => Array
(
[2014-08-03] => Jonh
[2014-08-04] => Jonh
[2014-08-04] => Lewis
)
但是你可以在fidle中看到只有两个apear,我相信这是一个简单的伎俩,但是我的脑袋已经吹了,“问题”在日期和时间相等的记录中......
我可以帮忙吗?
答案 0 :(得分:0)
您的问题是重复密钥。对于一个实例,您尝试将jonh
和lewis
同时推送到[10:00:00 - 15:00:00][2014-08-03]
的索引。您需要另一个数组,因此结构将是一个3D数组。
一个看似合理的结构,
Array
(
[10:00:00 - 15:00:00] => Array
(
[2014-08-03] => Array
(
[0] => Jonh
)
[2014-08-04] => Array
(
[0] => Lewis
[1] => Jonh
)
)
答案 1 :(得分:0)
将代码的第114行更改为:
$final[$time][$value[2]][] = $value[1];
创建名称数组。然后会print_r($final)
打印:
Array
(
[10:00:00 - 15:00:00] => Array
(
[2014-08-03] => Array
(
[0] => Jonh
)
[2014-08-04] => Array
(
[0] => Jonh
[1] => Lewis
)
)
这就是你想要的吗?
假设上面显示的数组是$ table_array。现在要在列中写入名称,请使用以下内容:
echo '<td>'.$table_array['10:00:00 - 15:00:00']['04-08-2014'].'</td>';
相反,你会写一些类似的东西:
$names = '';
foreach ($table_array['10:00:00 - 15:00:00']['04-08-2014'] as $name)
$names .= $name . ', ';
$names = rtrim($names, ', ');
echo '<td>'.$names.'</td>';
如果您采用不同的方式,请发布您的代码,以便我知道如何帮助您