Уравнение строки процесса с именами переменных без знака $

Я пытался использовать функцию поиска для решения моего варианта использования, но я не смог найти аналогичную ситуацию, как моя. Пожалуйста, помогите мне в этом.

В настоящее время я занимаюсь разработкой веб-страницы, которая читает из двух текстовых файлов с именами и цифрами внутри различные массивы.
Для простоты объяснения, скажем:

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

У меня также есть отдельный массив, который содержит формулы, импортированные из текстового файла, например:

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

Таким образом, в математических терминах формулы могут быть записаны как:

data1 = x+2
data2 = x+y

То, что я хотел бы сделать, это сделать вычисления, как это, когда я вызываю data2:

$data2 = $x + $y;

Я бы хотел, чтобы php автоматически использовал 3 и 2 для x и y соответственно для формулы, хотя в формуле нет знака $, обозначающего x и y как переменные.

Будет ли такая ситуация возможной? Я изучил matheval и eval, но я не слишком уверен, могут ли они быть использованы для моей ситуации.

Спасибо за любую помощь. 🙂

0

Решение

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

Создам свой $x а также $y переменные с правильными значениями;

Хотя используя основные $data массив с его x а также y ключи, вероятно, лучше, и с помощью eval() определенно рискованно, если это введенные пользователем формулы

0

Другие решения

Вы можете использовать ассоциативные массивы, например:

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

По вопросам рекламы [email protected]