2017-11-30 9 views
0

배열의 var_dump처럼 보이는 제 3 자 플러그인의 반환 문자열이 있습니다. 유효한 연관 배열을 구문 분석하려고합니다. 다양한 예제를 살펴보고 다음 코드로 몇 가지 테스트를 수행하십시오. 마지막 부분은 제가 겪고있는 문제를 보여줍니다. 데이터를 문자열로 구문 분석하고 내 데이터 문자열이 완료된 후 프로그래밍 방식으로 배열을 만들려고합니다.PHP : 프로그래밍 방식으로 연관 배열 만들기

Array ([0] => "Gourd"= "40 kilojoules", "Artichoke"= "105 kilojoules", "Cassava"= "550 kilojoules") $ 야채 2에서 print_r을 수행하면 얻을 수 있습니다.

echo $ vegetables2 [ "Artichoke"]는 값을 생성하지 않습니다. 누군가 제발 올바른 구문을 처음 두 예제에 해당하는 배열을 만들 가이드 날 수 있습니까?

//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 Kilojoule Artichoke는 나의 Flaming Lips cover band의 이름입니다. –

+0

이것은 단순히 당신이 가지고있는 전체 문자열의 한 원소 배열을 만든다 :'$ 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); echo "아티 초크 :". $ vegetables3 [ "Artichoke"]; –

+0

타사 플러그인 (배열 또는 문자열)의 값을 정확히 반환합니다. –