Я попытался использовать функцию поиска для решения моего варианта использования, но мне не удалось найти подобную ситуацию, например, мою. Пожалуйста, любезно помогите мне в этом.
В настоящее время я разрабатываю веб-страницу, которая читает из 2 текстовых файлов с именами и номерами внутри в разные массивы. Для удобства объяснения, скажем:
$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, но я не уверен, могут ли они использоваться для моей ситуации.
Спасибо за любую помощь. :)
$namesarray = array("x","y");
$valuesarray = array("3","2");
$data = array_combine(
$namesarray,
$valuesarray
);
extract($data);
Создает ваши переменные $x
и $y
с правильными значениями;
Хотя использование базового массива $data
с его x
и y
ключами, вероятно, лучше, и использование eval()
определенно опасно, если это введенные пользователем формулы
Вы можете использовать ассоциативные массивы, fe:
$variables = array('x' => 3, 'y' => 2);
$data1 = $variables['x'] + 2;
$data2 = $variables['x'] + $variables['y'];