2017-11-30 4 views
0

配列からvar_dumpのように見える第三者プラグインの戻り文字列があります。私は有効な連想配列を解析しようとしています。さまざまな例を見て、それに続くコードでいくつかのテストをしてください。最後のセグメントは、私が抱えている問題を示しています。私は文字列にデータを解析し、プログラムでデータ列が完成した後に配列を作成しようとしています。PHP:プログラムによる連想配列の作成

アレイ([0] => "瓢箪" = "40キロジュール"、 "アーティチョーク" = "105キロジュール"、 "キャッサバ" = "550キロジュール")は、野菜2でprint_rを実行すると得られます。

echo $ vegetables2 ["Artichoke"]は値を生成しません。誰かが最初の2つの例に相当する配列を作成する正しい構文で私を導くことができますか?

//this works: 
echo "From creating the entire array with a static string:<br/>"; 
$vegetables = array("Gourd"=>"40 kilojoules", "Artichoke"=>"105 kilojoules", "Cassava"=>"550 kilojoules"); 
echo "Artichoke: " . $vegetables["Artichoke"] . "<br/>"; 

//this works too 
$vegetables1['Gourd'] = "40 kilojoules"; 
$vegetables1['Artichoke'] = "105 kilojoules"; 
$vegetables1['Cassava'] = "550 kilojoules"; 
echo "From creating one element at a time:<br/>"; 
echo "Artichoke: " . $vegetables1["Artichoke"] . "<br/>"; 

//this doesn't work 
$strData = "\"Gourd\"=\"40 kilojoules\","; 
$strData = $strData . "\"Artichoke\"=\"105 kilojoules\","; 
$strData = $strData . "\"Cassava\"=\"550 kilojoules\""; 
echo $strData ."<br/>"; 
$vegetables2 = array($strData); 
print_r($vegetables2); 
echo "Artichoke: " . $vegetables2["Artichoke"]; 
+1

あなたは、入力データの一例を示すことができますか? –

+2

105キロジュールアーティチョークは、私のFlaming Lipsカバーバンドの名前です。 –

+0

これは、取得した文字列全体を1要素の配列にするだけです。 '$ vegetables2 = array($ strData);' ...解析しようとしているRAWデータの例を示してください。それは答えのための多くの道に光を当てるでしょう。プラグインから返さ – IncredibleHat

答えて

0
$strData = "\"Gourd\"=\"40 kilojoules\","; 
$strData = $strData . "\"Artichoke\"=\"105 kilojoules\","; 
$strData = $strData . "\"Cassava\"=\"550 kilojoules\""; 


$dd=str_replace('"','',"$strData"); 
$ff=explode(',',$dd); 
foreach ($ff as $c) 
{ 
$xx=explode('=',$c); 
$vegetables2["$xx[0]"]=$xx[1]; 
} 
print_r($vegetables2); 
echo "Artichoke: " . $vegetables2["Artichoke"]; 
+0

あなたの文字列を囲む '' 'はありませんか? – Andreas

+0

あなたの最終的な結果の配列は、私の開始配列の文字列とまったく同じように見えます。このコードはそれをしない。 $ arrayString = "アレイ ( [ひょうたん] => 40キロジュール [アーティチョーク] => 105キロジュール [キャッサバ] => 550キロジュール )"。 $ vegetables3 = $ arrayString; print_r($ vegetables3); エコー "アーティチョーク:"。 $ vegetables3 ["Artichoke"]; –

+0

サードパーティのプラグイン(配列または文字列)の値を正確に返します。 –