我试图使用动态变量名称(我不确定它们实际上被称为什么),但大致如下:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
返回值为null,说明它不起作用。我不知道我在这里寻找的语法或技术是什么,这使得研究起来很困难。$filelist在前面定义。
我试图使用动态变量名称(我不确定它们实际上被称为什么),但大致如下:
for($i=0; $i<=2; $i++) {
$("file" . $i) = file($filelist[$i]);
}
var_dump($file0);
返回值为null,说明它不起作用。我不知道我在这里寻找的语法或技术是什么,这使得研究起来很困难。$filelist在前面定义。
当前回答
我有6个相同的数组,我需要根据另一个变量选择正确的一个,然后给它赋值。在这里显示的情况下$comp_cat是'a'所以我需要选择我的'a'数组(我当然也有'b'到'f'数组)
注意,变量在数组中的位置值位于右大括号之后。
$ {comp_cat_。comp_cat美元。'_arr'}[1][0] = "FRED BLOGGS"; $ {comp_cat_。comp_cat美元。'_arr'}[1][1] = $file_tidy; $comp_cat_a_arr[1][0]. echo '第一个数组值是'。',第二个值是。$comp_cat_a_arr[1][1];
其他回答
我经常这样做从查询返回的结果..
e.g.
// $MyQueryResult is an array of results from a query
foreach ($MyQueryResult as $key=>$value)
{
${$key}=$value;
}
现在我可以只使用$MyFieldname(这是更容易在echo语句等)而不是$MyQueryResult['MyFieldname']
是的,这可能是懒惰,但我从来没有遇到过任何问题。
试着用{}代替():
${"file".$i} = file($filelist[$i]);
Tom,如果你有一个现有的数组,你可以将该数组转换为对象,并像这样使用它:
$r = (object) $MyQueryResult;
echo $r->key;
我有一个动态创建变量值的解决方案,并将所有值组合在一个变量中。
if($_SERVER['REQUEST_METHOD']=='POST'){
$r=0;
for($i=1; $i<=4; $i++){
$a = $_POST['a'.$i];
$r .= $a;
}
echo $r;
}
试着用{}代替():
${"file".$i} = file($filelist[$i]);