感谢下面的帮助,但我仍然遇到一些问题,我会尝试进一步解释:
我有一个变量如下:
$value['questions'];
Run Code Online (Sandbox Code Playgroud)
现在,我需要在循环中进行检查,所以我在循环中有这段代码:
if($results[$value['questions']]==4){blah blah blah};
Run Code Online (Sandbox Code Playgroud)
但我遇到的问题是,价值$value['questions']是Q1,但我需要的Q1是一个字符串(i.e. inside quotes '')代码的$结果部分,所以$结果元素应该是这样的......
if($results['q1']==4){blah blah blah};
Run Code Online (Sandbox Code Playgroud)
目前它看起来像这样
if($results[q1]==4){blah blah blah};
Run Code Online (Sandbox Code Playgroud)
合理?
再次感谢您的帮助.
大家好,
我希望有一个简单的解决方案!
我有一个变量:
$results['q1'];
Run Code Online (Sandbox Code Playgroud)
是否可以将'q1'元素作为变量,如下所示:
$results['$i[question]'];
Run Code Online (Sandbox Code Playgroud)
无法在Google上找到解决方案并研究PHP手册......
有人有建议/解决方案吗?
谢谢,
荷马.
是的,在访问数组元素时,可以使用变量作为indice.
例如,考虑这部分代码:
$results = array(
'a' => 'sentence a',
'b' => 'hello !',
);
$indice = 'a';
echo $results[$indice];
Run Code Online (Sandbox Code Playgroud)
这将给出以下输出:
sentence a
Run Code Online (Sandbox Code Playgroud)
这里$indice是一个非常简单的变量,但你可以在[和之间使用任何你想要的]东西,例如:
$results[ my_function($parameter) ]$result[ $my_array['indice'] ]
$result[ $obj->data ]基本上,你可以使用你想要的任何东西 - 只要它评估为标量值(即一个整数,字符串)
在您的具体情况下,您可能已经$results声明了这样的一点:
$results = array(
'q1' => 'first question',
'q2' => 'second question',
);
Run Code Online (Sandbox Code Playgroud)
而$i将这样声明:
$i = array(
'question' => 'q1'
);
Run Code Online (Sandbox Code Playgroud)
这意味着$i['question']将是'q1',并且下面的代码部分:
echo $results[ $i['question'] ];
Run Code Online (Sandbox Code Playgroud)
会得到你这个输出:
first question
Run Code Online (Sandbox Code Playgroud)
编辑:要回答您在问题标题中使用的特定单词,您还可以在PHP中使用所谓的变量变量:
$variable = 'a';
$indice = 'variable';
echo $results[ $$indice ];
Run Code Online (Sandbox Code Playgroud)
这里 :
$indice 是 'variable'$$indice是'a'
当然,不要忘记阅读PHP手册的Arrays部分.
该为什么$ foo的[bar]错了?段落可能是有意义的,特别是考虑到你发布的例子.
编辑OP后编辑:
如果$value['questions']是'q1',那么,以下两部分代码:
if($results[$value['questions']]==4){blah blah blah}
Run Code Online (Sandbox Code Playgroud)
和
if($results['q1']==4){blah blah blah}
Run Code Online (Sandbox Code Playgroud)
应该完全相同的事情:with $results[$value['questions']],$value['questions']部分将'q1'在表达式的其余部分之前被评估(to ),并且那个部分将与之相同$results['q1'].
作为示例,以下代码部分:
$results = array(
'q1' => 4,
'q2' => 6,
);
$value = array('questions' => 'q1');
if($results[$value['questions']]==4) {
echo "4";
}
Run Code Online (Sandbox Code Playgroud)
输出4.
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |