使用带有while循环的字符串的数组

时间:2014-09-30 19:28:18

标签: php arrays string

我正在编写一些代码来自动创建字段,这将为我节省大量时间。我的大部分代码都工作正常,但是我发现代码出现了一个错误,导致我无法实现最终目标。

代码如下:

while ($i <= $numFields) {

    $type               = "\$field{$i}_Data['type']";
    $name               = "\$field{$i}_Data['name']";
    $placeholder        = "\$field{$i}_Data['placeholder']";
    $value              = "\$field{$i}_Data['value']";

    echo '<input type="'.$type.'" name="'.$name.'" placeholder="'.$placeholder.'" value="'.$value.'">';

    $i++;

}

$ numFields变量是在我的脚本顶部定义的,我已经知道它与我如何设置变量$ type,$ name等有关。

最终结果是根据脚本顶部变量中设置的属性创建输入。我遇到的唯一问题是变量的设置,如上所述。

如果需要任何额外的代码/信息,请随时提问。

谢谢。

注意 - 没有物理PHP错误,它纯粹是一个错误:

"\$field{$i}_Data['value']";

1 个答案:

答案 0 :(得分:1)

我们可以用几种方法编写这个,但它们都是变量扩展和/或变量变量的扩展。

基本上,我们只需要将变量名称放在一个字符串中,然后将该字符串用作变量(就像你目前在字符串中使用$i一样):

$type = ${"field{$i}_Data"}['type'];
$name = ${"field{$i}_Data"}['name'];
// ...

但是,如果您不介意额外的变量,可以通过保存它来更清晰地写出:

$data = ${"field{$i}_Data"};
$type = $data['type'];
$name = $data['name'];
// ...