-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 に答える