2012-03-14 5 views
0

なぜこれは機能しませんか?配列内の変数を使用すると、配列はデータを出力しません。

$w = '"one","two"'; 
    $a = array($w); 
    for($i = 0; $i < count($a); $i++) { 
     echo $a[$i].'<br />'; 
     } 

outputes上記1:"one","two"

しかし、これはいますか?

$a = array("one","two"); 
    for($i = 0; $i < count($a); $i++) { 
     echo $a[$i].'<br />'; 
     } 

出力する上記いずれか

one 
two 

これは動的データベースから引き出されなければなりません。私は各要素の周りに引用符で配列として情報を格納しています。だから、私はデータをプルするときに、配列のその行の変数をスローするだけです。しかし、それは働いていないので、私はそれをどのように機能させるのですか?データは、データベースから来ている場合は、

+0

あなたは '$ a = array(eval($ w));'できますか? – Ascherer

答えて

2
$w = '"one","two"'; 
$a = array($w); 

は一つの要素"one","two"var_dump($a);に確認してください)

$a = array("one","two"); 

は二つの要素"one""two"

との配列を作成して、配列を作成します。ありがとうございましたコンマで区切られた項目の文字列をexplode()で分割することはできますが、文字列に複数の値を格納しないでください。

0

最初の例では、単一の文字列"one","two"を使用して配列を作成しています。

2番目の例では、"one""two"という2つの文字列を持つ配列を作成しています。

あなたは配列に有効にする例1のように文字列を持っている場合、あなたは、PHPの関数explode()使用することができます。 http://php.net/manual/en/function.explode.php

0

をすべて私に言えることは、第1の方法は、文字列リテラルを出力しているということです。おそらくPHPはあなたの配列にいくつの項目を入れるのか理解していません... とにかく、宣言の時点ではなく、一度に配列に1つと2つの文字列をロードしようとするかもしれません。 :/