从现有数组创建新的多维数组(php)

从现有数组创建新的多维数组(php),php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我需要从另一个已经存在的数组创建一个数组,创建一个新的数据结构 现在我已经有了新的数组 问题是: 在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

我需要从另一个已经存在的数组创建一个数组,创建一个新的数据结构

现在我已经有了新的数组

问题是:

在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
        )
但正如你在小提琴中看到的,只有两个阿佩尔,我相信这是一个简单的把戏,但让我大吃一惊,“问题”在于日期和时间相等的记录


能帮点忙吗?

您的问题是钥匙重复。例如,您尝试在
[10:00:00-15:00:00][2014-08-03]
索引处同时推送
jonh
lewis
,您需要另一个数组,因此结构将是3D数组

一个看似合理的结构是

Array
(
    [10:00:00 - 15:00:00] => Array
        (
            [2014-08-03] => Array 
                (
                  [0] => Jonh
                )
            [2014-08-04] => Array
                (
                  [0] => Lewis
                  [1] => Jonh
                 )
        )

将代码的第114行更改为:

$final[$time][$value[2]][] = $value[1];
创建名称数组<代码>打印($final)然后将打印:

Array
(
    [10:00:00 - 15:00:00] => Array
        (
            [2014-08-03] => Array
                (
                    [0] => Jonh
                )

            [2014-08-04] => Array
                (
                    [0] => Jonh
                    [1] => Lewis
                )

        )
这就是你想要的吗

假设上面显示的数组是$table\u数组。现在,要在列中写入名称,请使用以下内容:

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>';
echo'.$table_数组['10:00:00-15:00:00'.['04-08-2014'.];
相反,您可以编写如下内容:

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>';
$names='';
foreach($name形式的表_数组['10:00:00-15:00:00']['04-08-2014']
$names.=$name.',';
$names=rtrim($names,,');
回显“.$names.”;

如果您使用不同的方式,请发布您的代码,这样我就知道如何帮助您重新思考所需的结构。在PHP数组中,不可能对两个值使用同一个键。您实际想要实现什么?这是一个真正的问题。。。。。我是新手犯的错误。。。。我将用我希望最终获得的最终结果更新defidle。我相信这就是解决方案,最终我将需要用该数组填充一个表,以获得此结果,但为什么需要两行时间为“10:00:00-15:00:00”?你不能把“Lewis”放在第一行吗?我需要两行,因为我需要把每条记录放在一个单元格中,因为我在同一时间(行)有两条记录。我更喜欢重复行,而不是重复列。我真诚地感谢你的努力,你发布的方式在同一单元格中生成了两个名称,用逗号(,)。对于我来说,将每个名称放在不同的单元格中非常重要,正如我在result phpfiddle.org/main/code/z82w-gupe的fidle中所示,因为在这之后,我将管理在表中内联更改数据库,为此,我必须将每个记录放在单个单元格中。我认为您不必将每个记录放在单个单元格中。如果
$names
包含单元格中的名称,则可以执行类似于
$separated_names=explode(',',$names)的操作
然后循环遍历所有元素(分离的名称),这样您就可以对每个名称进行数据库更改。非常感谢您的帮助,但我相信foreach是必要的,它可以创建一个空记录,因为当我填充表时,我需要空值来填充单元格,否则数据将被无序放置。。。。我相信。。。。最终我需要实现这一点。。。使用php离线phpfiddle.org/main/code/z82w-gupe