-1

我有一个这样的php代码

$output .= '<div>';
$output .= sprintf('<input type="text" name="%s"/>', $field['input_name']);
$output .= '</div>';
return $output;

这些输入字段可以重复。所以$field['input_name'] is a multidimensional array

所以看起来像这样

name[first_name][1][1]

如果我复制该字段,它看起来像这样

name[first_name][2][1]

如果名称字段看起来像,我想显示一个按钮name[username][][]

我试过这样。但它不起作用。

if ($field['input_name'] == 'name[username][][]') {
    $output .= '<input type="submit" value="Testing">';
}

有人可以给我正确的语法吗?

谢谢

4

1 回答 1

1

您需要实现一个foreach()循环或一些函数来搜索您的数组。在这种情况下,你最好的朋友是RecursiveIteratorIterator

function searchArrayValueByKey(array $array, $needle) {

    foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $key => $value) {
        if ($key === $needle)
        return $value;
    }
    return false;
}

实施(示例):

if (searchArrayValueByKey($name['username'], $field['input_name']) {
    $output .= '<input type="submit" value="Testing">';
}

如果您处理大数据数组,此解决方案可能会很慢。

于 2012-12-14T16:53:12.043 回答