2013-05-30 3 views
1

에 문자열로 변환 :PHP ~ 내가이 문자열을 배열

array('type' => 'button', 'value' => 35); 

간단한 질문 : 어떻게 배열로 문자열을 변환 할 수 있습니까? 난 당신이 평가의 외부 코드로 문자열을 읽을 수있는 기능을 찾을 수 있습니다 의심

array('t,y,p,e' => 'bu,t,t,o,n', 'va,,,l,,ue' => '3,,,,,5'); 
+1

문자열의 원본은 무엇입니까? –

+0

배열 ('type'=> 'button', 'value'=> 35)은 문자열이 아니며 배열입니다. 배열 안의 문자열을 의미합니까? –

+0

@EduardoMoratto 나는 그가 그 문자열의 가치라는 것을 의미한다고 생각한다. – christopher

답변

1

:

문제는, eval 짜증 때로는 explode(",",$string) 어획량 잘못된 쉼표. 꽤 끔찍한이지만, 문자열에서 배열을 추출하는 빠른 해킹

$str = "array('type' => 'button', 'value' => 35)"; 
preg_match_all('/\(.*?\)/', $str, $arr); 

if(isset($arr[0])) 
{ 
    $array = array(); 
    $items = explode(",", substr($arr[0][0], 1, -1)); 
    foreach($items AS $i) 
    { 
    $kv = explode(" => ", $i); 
    $array[str_replace("'", "", trim($kv[0]))] = str_replace("'", "", trim($kv[1])); 
    } 

    print_r($array); 
} 

- 그래서 당신은 항상 같은 견고한 구조를 가지고 가정, 당신이 뭔가를 할 수 있습니다. 나는 이것이 당신의 문제에 대한 "좋은"해결책이라는 말은 아니지만, 빠른 수정이며 당신이 예제로 제시 한 것에 대해서는 효과가있을 것이다.

언제든지 궁금한 점이 있으시면 언제든지 더 나은 해결책을 제안하십시오.