2012-03-30 13 views
0

私は名前が$name[]、もう一つが$content[]の配列を持っています。どちらの配列も等しいオブジェクト(3)を持っています。 $content[]アレイには、以下に示すように、0,1または2のメッセージが含まれている場合があります。array_combineが解決策ではない場合、これらの2つの配列を結合する方法はありますか?

私の目的は、$content[0]などで$name[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'の出力は、有効なPHPを生成するので、サンプルデータに対して' var_dump'よりも有用です。 – outis

答えて

2

あなたがしようとしていることはまったく考えられません。問題はあまり明確ではない。期待される成果は?あなたが一つのキーの詳細を残してきた

$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

+0

PHP 5.3+とMultipleIteratorの代替ソリューション:http://stackoverflow.com/a/14724544/664108 –

1

$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

+1

@ Kaoukkos:$ contentは配列の配列なので、それをループするだけです。 – mpen

関連する問題