如何将带逗号分隔值的字符串转换为php中的变量?

时间:2017-07-21 19:41:10

标签: php

例如,假设我的数据库中有3列:column1, column2, column3

我有3个与列名相同的变量:

$column1 = 'Column 1 value';
$column2 = 'Column 2 value';
$column3 = 'Column 3 value';

因此,如果我添加了' $'在foreach循环中签名到列名,我将获得变量名。

$string = "column1, column2, column3";

function get_variable_names($string) {
    $array = explode(", ", $string); // Convert to array

    foreach ($array as $key => $value) {
        $array_values_with_dollar[] = '$'.$value;
    }
    $imploded = implode(", ", $array_values_with_dollar); // Convert to string again
    return $imploded;
}

$variable_string = get_variables($string);

现在,$variable_string的值为:$column1, $column2, $column3。 (字符串)。

是否可以输出变量的实际值,以便:

$variable_string => Column 1 value, Column 1 value, Column 1 value

[不使用eval()]

4 个答案:

答案 0 :(得分:2)

您可以这样称呼它们:

echo ${'column1'};

所以如果你想做一个循环:

for($i=1; $i<=3; $i++)
    echo ${'column' . $i} . '<br>';

如果你想要一个foreach,你可以这样做:

$string = 'column1, column2, column3';
$variables = explode(', ', $string);

foreach($variables as $variable)
    echo $$variable . '<br>';

结果

Column 1 value
Column 2 value
Column 3 value

有关详细信息:http://php.net/manual/en/language.variables.variable.php

答案 1 :(得分:1)

只需使用$$代替$

$column1 = 'Column 1 value';
$column2 = 'Column 2 value';
$column3 = 'Column 3 value';

$string = "column1, column2, column3";
$array = explode(", ", $string);
foreach ($array as $elemnt){
    echo $$elemnt . "<br>";
}
exit;

输出

Column 1 value
Column 2 value
Column 3 value

答案 2 :(得分:0)

我想,您可以使用此代码

.upload{
display:inline-block;
position:relative;
}
input{
position:absolute;
bottom:10px;
right:2px;
}
textarea{
display:block;
width:500px;
}
.image-upload > input
{
display: none;
}
.image-upload img
{
width: 40px;
cursor: pointer;
}

答案 3 :(得分:0)

使用list列出变量并在分隔符上爆炸。

List($column1, $column2, $column3) = explode(", ", "column1, column2, column3"); 

https://3v4l.org/IMAoQ