2014-11-10 2 views
0

사용 사례에 대한 솔루션에 대한 검색 기능을 사용하려했지만 광산과 유사한 상황을 찾을 수 없었습니다. 친절하게 도와주세요.

현재 이름과 번호가 다른 2 개의 텍스트 파일을 다른 배열로 읽는 웹 페이지를 개발 중입니다. 설명의 편의를 위해 , 이제 가정 해 봅시다 : 수학 측면에서

$formulaname = array("data1","data2"); 
$formula = array("x+2","x+y"); 

그래서, 수식 작성할 수 있습니다 :

$namesarray = array("x","y"); 
$valuesarray = array("3","2"); 

나는이 같은 텍스트 파일에서 가져온 공식을 전달하는 별도의 배열을

:

data1 = x+2 
data2 = x+y 

내가 뭘하고 싶은 나는 데이터 2 호출 할 때이 같은 계산을하는 것입니다 :로

$data2 = $x + $y; 

저는 수식에 x와 y를 변수로 나타내려면 $ 기호가 없지만 PHP는 자동으로 3과 2를 사용합니다.

그런 상황이 가능할까요? 내가 matheval과 eval을 들여다 보았지만, 그들이 내 상황에 사용될 수 있는지에 대해서는 확신이 없습니다.

도움 주셔서 감사합니다. :)

답변

0
$namesarray = array("x","y"); 
$valuesarray = array("3","2"); 
$data = array_combine(
    $namesarray, 
    $valuesarray 
); 
extract($data); 

올바른 값으로 $x$y 변수를 만들 것인가 연관 배열, f.e를 : 사용할 수 있습니다;

xy 키를 사용하여 기본 $data 배열을 사용하지만

은 아마 더 나은, 그리고이

+0

제안 해 주셔서 감사합니다. 이것은 이름과 값이 변수가 아닌 문자열이라는 문제를 해결합니다. –

+0

그러나 PHP가 x + y와 같은 문자열 공식과 같은 것을 자동으로 인식하고 방정식을 문자열로 처리하는 대신 $ x 및 $ y의 각 값을 사용하는 방법이 있습니까? 다시 당신의 도움을 주셔서 감사합니다 :) –

+1

[이 질문에] 허용 대답을 봐 (http://stackoverflow.com/questions/12692727/how-to-make-a-calculator-in-php) –

0

당신은

$variables = array('x' => 3, 'y' => 2); 
$data1 = $variables['x'] + 2; 
$data2 = $variables['x'] + $variables['y']; 
+0

당신의 제안을 주셔서 감사합니다 사용자가 입력 한 수식을 경우 eval()를 사용하는 것은 확실히 위험합니다. 그러나 문제는 텍스트 파일에서 방정식 (즉, x + y)을 읽음으로써 문자열 형식으로 표시된다는 것입니다. 각 방정식을 정의하는 것은 각 텍스트 파일에 대해 약 200 개 이상의 방정식이 있기 때문에 가능하지 않으며 사용자가 선택한 항목에 따라 많은 텍스트 파일이 있습니다. –

+0

@ user2749222하지만 변수를 사용하려면 모두 정의해야합니다 – fiction

관련 문제