Php如何在变量名中包含另一个变量

时间:2014-10-19 16:43:25

标签: php

在示例中有两个数组,但实际上可能是其他数量的数组(我不知道我可能有多少个数组)。

$some_name = array ( "Volvo_0",220,180, );
$array_name_for_variable[]='some_name';//here i create another array latter to loop through

$another_name = array ( "Volvo_1",221,181, );
$array_name_for_variable[]='another_name';

在示例中,我只想print_r我可能拥有的数组。所以我循环通过$array_name_for_variable。喜欢

foreach( $array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable ) {

尝试使用此

打印特定数组(如print_r($some_name)
echo '<pre>', print_r($['val_array_name_for_variable'], true), '</pre> $val_array_name_for_variable __<br/>';

但请参阅错误Parse error: syntax error, unexpected '[', expecting T_VARIABLE or '$'

}

print_r($['val_array_name_for_variable'])错了。尝试了这个print_r( $[$val_array_name_for_variable] );。也有错误。

任何需要改变的想法。

为什么这一切以及我需要的......

我有12个阵列,但我不知道在一个特定页面中将使用12个阵列。

因此页面加载,12个数组中的一些被定义(使用)。

我可能会写如果array_1存在,那么使用array_1中的变量的长html代码。

如果array_2存在且不为空,则再次使用array_2中的变量重复相同的html代码。

但是我没有复制粘贴(重复)html代码,而是决定循环遍历已打开页面中的数组,而长html代码只写一次。

2 个答案:

答案 0 :(得分:1)

您可能想要做这样的事情

$some_name = array ( "Volvo_0",220,180, );
$array_name_for_variable['some_name']= $some_name ;

$another_name = array ( "Volvo_1",221,181, );
$array_name_for_variable['another_name']= $another_name ;


foreach( $array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable ) {

   print_r($val_array_name_for_variable);//prints the array
   print_r($i_array_name_for_variable);// print the keys ex :- some_name
}

答案 1 :(得分:1)

您可以通过以下方式解决问题:

$some_name = array ( "Volvo_0",220,180, );
$array_name_for_variable[]=$some_name;

$another_name = array ( "Volvo_1",221,181, );
$array_name_for_variable[]=$another_name;

然后迭代它:

foreach( $array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable ) {
echo '<pre>', print_r($val_array_name_for_variable, true), '</pre><br/>';
}

这将打印$ array_name_for_variable中的所有元素。

评论是否需要对输出进行任何更改。

说明:代码实际执行的是遍历数组$ array_name_for_variable的所有元素。它们创建了一个键=&gt;其中每个元素的值。第一次迭代的值($ val_array_name_for_variable)将是:$ some_name。键($ i_array_name_for_variable) - 数组中的元素位置,因此在第一次迭代时它将为0(因为它总是从0开始)。

如果你不需要元素位置,你可以这样做:

foreach( $array_name_for_variable as $val_array_name_for_variable ) {
echo '<pre>', print_r($val_array_name_for_variable, true), '</pre><br/>';
}

它将生成与前一代码片段完全相同的输出。

为了向数组中添加元素,你必须传递一个变量,而你只传递一个字符串。

修改 根据新添加的信息,代码应为:

foreach( $array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable ) {
if (array_key_exists($i_array_name_for_variable, $val_array_name_for_variable)) {
echo '<pre>', print_r($val_array_name_for_variable, true), '</pre><br/>';
} else {
//Code if the array does not exist.
}
}

参考文献: