2012-03-14 73 views
0

爲什麼這不起作用?如果我在數組內使用變量,數組將不會輸出數據

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

的一個以上outputes:"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 2012-03-14 01:48:07

回答

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

如果數據來自數據庫作爲創建具有一個元件"one","two"(與var_dump($a);檢查)

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

創建具有兩個元素"one""two"

陣列的陣列一串逗號分隔的項目,你可以用explode()分割它們,但這是一個可怕的做法 - 你不應該在一個字符串中存儲多個值。

0

在第一個示例中,您正在構建一個使用單個字符串"one","two"的數組。

在第二個示例中,您正在構建一個包含兩個字符串的數組:"one""two"

如果你有一個像例1中的字符串,你想變成一個數組,你可以使用PHP函數explode()http://php.net/manual/en/function.explode.php

0

所有我能說的是,第一種方法是輸出一個字符串。也許PHP不知道要在你的數組中放置多少項...... 無論如何,你可能會嘗試一次一個地將字符串「One」和「Two」加載到數組中,而不是在聲明點。 :/