2017-07-04 47 views
0

我使用其使用類對象如下窗口小部件:我想一個字符串傳遞給一個obect

$p->data = array(array(array('01-Jan-2017',200),array('02-Feb-2017',210))); 

但我想要動態地建立這個數組使用從DB數據以擴展陣列結構例如:

$wstr = "array(array(array('$varR1C1,$varR1C2),array('$varR2C1',$varR‌​2C3),array('$varR3C1‌​',$varR3C2),array(ar‌​ray('$varR4C1',$varR‌​4C2),array('$varR5C1‌​',$varR5C2),array('$‌​varR6C1',$varR6C2)))‌​;" 

這將使(帶有小部件的)折線圖包含2行,每行3個配對值。如果我然後嘗試:

$p->data = $wstr; 

這不起作用。我怎樣才能將字符串轉換爲對象?我曾嘗試JSON_encode,但這並不工作,要麼即:

$p->data = substr(json_encode($wstr),1,strlen(json_encode($wstr))-2) 

其中SUBSTR會從編碼(有&嘗試沒有!)

+5

你聽說過JSON嗎? –

+0

使用JSON。它意味着要安全地序列化和反序列化。這是任意代碼,不是你想盲目評估的東西。 – tadman

+0

我確實看過JSON,但是當我嘗試以下時,它仍然失敗。 $ wstr =「array(array(array('01-Jan-2017',200),array('02 -Feb-2017',210)))」; (「json_encode($ wstr)」,1,strlen(json_encode($ wstr)) - 2)「

」;回覆「

json_encode2:」。 即顯示回聲:json_encode2:array(數組(array('01-Jan-2017',200),array('02 -Feb-2017',210))) - json_decode什麼也沒有返回! – kcoops

回答

0

如果我理解正確的話,在你的PHP代碼擺脫「你有變量$var1$var2$var3,並$var4,你想用這些來填充數組,而不是硬編碼值的例子嗎?

如果是這樣,爲什麼不乾脆

$p->data = array(array(array($var1, $var2), array($var3, $var4))); 

BTW,用現代語法(PHP 5.4及更高版本),我們傾向於使用數組較短的語法(和更熟悉的人從其他語言),在你的代碼看起來就像這樣:

$p->data = [ [ [$var1, $var2], [$var3, $var4] ] ]; 
+0

我應該更加明確。當我想從簡單的例子中動態地改變數組結構時,我的意思是能夠使用來自Db的數據來擴展它, (array)(array('$ varR1C1',$ varR1C2),array('$ varR2C1',$ varR2C3),array('$ varR3C1',$ varR3C2) ,$ varR4C2),array('$ varR5C1',$ varR5C2),array('$ varR6C1',$ varR6C2)));這將啓用(帶有小部件)一個包含2行的折線圖,每個3個配對值 – kcoops

+0

請更新這個問題的更多細節,尤其是你如何從數據庫中讀取數據的例子。 – Guss

+0

PS我嘗試了你所建議的格式,並且可以確認這個結構能夠工作,但我仍然不知道如何動態地構建這個結構。它對對象感謝 – kcoops

相關問題