2014-01-06 2 views
0

내가 만드는 앱에서 변수에있는 내용을 사용하여 배열을 만들고 싶습니다. 내 코드 :변수의 PHP 배열 내용

$cont = '"q","w","e","r","t",'; 
$num = array(eval($cont)); 
foreach ($num as $v) { 
    echo "" . $v . "<br>OK<br><br>"; 
} 

아무 것도 반환하지 않습니다. 나는 평가와 함께 그것을 시도했다. 그리고 내가 무엇을 잘못하고 있냐?

+0

코드가 의미가 없습니다 –

+0

http://php.net/explode 추신 : 사용자 정의 직렬화 알고리즘을 개발하는 대신 json을 확인하는 것이 좋습니다. 대신. – zerkms

+1

반쯤 생성 된 임의의 표현식을 '평가'할 수 없습니다. 유효한 PHP 여야합니다. –

답변

1

는 이후 explode() 찾고있는 것을 추측 :

$cont = '"q","w","e","r","t","y"'; 
$num = explode(',',$cont); 
foreach ($num as $v) { 
    echo "" . $v . "<br>OK<br><br>"; 
} 

출력

"q" 
OK 

"w" 
OK 
.. 
+1

마지막으로 문자열에 쉼표가 있으면 마지막에 "OK"만 인쇄됩니다. 이를 위해 array_filter() 함수를 사용하여 null 값을 필터링 할 수 있습니다. – Kashyap

0

eval 악한, most of time.

: 모든 경고와 대안이 당신을 위해 충분하지 않습니다, 당신은 eval를 사용하여 주장하는 경우

$num = array("q","w","e","r","t"); 
foreach ($num as $v) { 
    echo "$v<br>OK<br><br>"; 
} 

그러나,이 시도 :

$cont = '"q","w","e","r","t",'; 
preg_match_all("/\"([^\"]+)\"/", $cont, $matches); 
$num = $matches[1]; 
foreach ($num as $v) { 
    echo "$v<br>OK<br><br>"; 
} 

또는 단순히 배열을 만들 : 대신 preg_match_all을 사용할 수 있습니다

$cont = '"q","w","e","r","t",'; 
eval("\$num = array($cont);"); 
foreach ($num as $v) { 
    echo "$v<br>OK<br><br>"; 
}