0

次の配列が与えられたインポーズを作成しようとしています。

<?php

    $conditions = array(
         'username' => array('=', 'nblackburn'),
         'password' => array('=', 'password')
    );

    $output = array();
    foreach($conditions as $key => $values) {
        $output[] = $key.' '.implode(' ', $values);
    }

    echo implode(' AND ', $output);

?>

次のような文字列を返す必要があります。

username = nblackburn AND password = password

しかし、私はそれを機能させるのに問題があります。ご覧のとおり、最初のセクション(username)は配列のキーであり、2番目の(=)はサブ配列の最初の要素であり、最後の(nblackburn)はその最後の要素です。

4

1 に答える 1

3

このような?

$str = array();
foreach($test as $key => $values) {

  // if there are always only 2 values inside
  $str[] = $key .' '.$values[0].' '.$values[1];

  // with more values (taken from nblackburns solution)
  $str[] = $key.' '.implode(' ', $values);
}

echo implode(' AND', $str);

ただし、コメントに記載されているように、脆弱性が生じる場合は使用しないでください。

于 2012-04-13T10:31:48.750 に答える