如何在array_combine不是解决方案时组合这两个数组?

问题描述:

我有一个名称为$name[]的数组,另一个名称为$content[]这两个数组都有相同的对象(3)。 $content[]阵列可能有0,1或2条消息,如下所示。如何在array_combine不是解决方案时组合这两个数组?

我的目标是回显$name[0]$content[0]等等。该名称将首先打印并在可用消息之后打印。我试图使用array_combine没有运气。

有什么办法可以做到这一点?

$名称[]

Array 
(
    [0] => 
    [1] => 
    [2] => 
) 

$内容[]

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [message] => 
       ) 

     ) 

    [1] => Array 
     (
     ) 

    [2] => Array 
     (
      [0] => Array 
       (
        [message] => 
       ) 

      [1] => Array 
       (
        [message] => 
       ) 

     ) 
) 
+0

你忽略了一个关键细节:组合阵列应该是什么样子。从你所描述的,'array_combine'应该是解决方案。结合样本数组的结果应该是什么? 'array_combine'的结果不合适吗?对于示例数据,“var_export”的输出比'var_dump'更有用,因为它会生成有效的PHP。 – outis 2012-03-30 03:55:16

真的不知道你在做什么;这个问题不是很清楚。你的预期产出是多少?

这是我在黑暗中刺:

$count = min(count($name),count($content)); 

for($i=0; $i<$count; ++$i) { 
    echo $name[$i]; 
    foreach($content[$i] as $msg) { 
     echo $msg['message']; 
    } 
} 
+0

谢谢马克。它的工作原理与我想要的一样小小的调整。 – EnexoOnoma 2012-03-30 03:55:14

+0

带'MultipleIterator'的PHP 5.3+替代解决方案:http://*.com/a/14724544/664108 – 2013-02-06 08:59:44

像这样吗?

$name = array(...); 
$content = array(...); 

foreach($content as $k => $v) 
{ 
    if(array_key_exists($k, $name)) 
    echo $name[$k]; 

    if(array_key_exists($k, $content)) 
    echo $content[$k]; 
} 
+0

我得到的是* Array *后面的名字。 – EnexoOnoma 2012-03-30 03:46:01

+1

@Kaoukkos:这是因为$ content是一个数组数组。只是循环它。 – mpen 2012-03-30 03:47:05