2011-01-24 1 views
2

私は配列があるといいます。PHP配列エラー

$a = array(1=>'one',2=>'two'); 

と別の配列$ B

$b = array(a => $a); This doesnt work while, 

$b = array(a => array(1=>'one',2=>'two')); works. 
+5

'$ b = array( 'a' => $ a);'は動作するはずです。文字列配列キーは引用符で囲む必要があります – acm

+1

再現できません。最初のものは "定義されていない定数aの使用 - 仮定された 'a'"という通知を出しますが、それは機能します。しかし、言及した他のものと同様に、文字列(引用符で囲まれたテキスト)を使用する必要があります。 – KingCrunch

+0

私の悪いです。私が気付かなかったのは、引用符が一致しなかったケースでした。先端に感謝します。 – cowboybebop

答えて

8

このような引用符で鍵を囲ま:

$b = array('a' => $a); 

A key may be either an integer or a string.キーが文字列の場合、それはその、引用符で囲む必要がありますあなたのコードはありません。

アクションhereで動作する固定コードを参照してください。

+2

+1、正しい。特に*非数値キーは文字列であり、引用符で囲む必要があります。 (ユーザーはすでに*数字キーが引用符なしで動作していますが、これは問題ありません) – Spudley

3

複製することができませんを見てみましょう。それがあるべき、つまり、あなたは、裸の単語としてaを使用すべきではない、しかし

Array 
(
    [a] => Array 
     (
      [1] => one 
      [2] => two 
     ) 

) 

:私のために「仕事」あなたの例はどちらも、ある意味で彼らはのデータ構造を生成すること

$b = array('a' => $a); 

おそらくあなたの実際のコードでこれはあなたの問題を引き起こしています。あなたの作成した例が実際に失敗を生成しないので、私は確かに言い表すことはできません。

1

デバッグの場合は、常にerror_reporting(E_ALL);と設定します。あなたのケースでは、それが動作していない理由が表示されます。

a =>'a'とする必要があります。

1

文字列配列のインデックスを引用符で囲む必要がありますが、PHPは不確定な定数(引用符のない文字列)を文字列に変換するので、警告が生成されますがコードは実行されます。私はhttp://writecodeonline.com/php/のすべての例を試してみましたが、うまくいきました!