-1

$_POST の形式で存在する正確なキーのみを返す配列キーを作成しました

function array_key_exists_exact($strkeys, $search) 
{
    $keys = split('\|',$strkeys);
    foreach($keys as $key)
    {
      if(array_key_exists($key,$search))
      {
          $newkeys[$key]=$key;
          unset($newkeys[$key]);
      }
      else
      {     
      }
    }
    return $newkeys;
}

ただし、すべてのキーを返しています。何が間違っていますか。

例えば:

$str="email|phone|address|school|country";
array_key_exists_exact($str, $_POST) 

$str に基づいてフォームに含まれるもののみを返す必要があります。

私のフォームがある場合:

<form>
<input type=text name=email>
<input type=text name=phone>
<input type=text name=address>
</form>

出力は次のようになります。

array("email", "phone", "address")

今、これを出力します:array("email", "phone", "address", "school", "country").

はい、合格しなければなりません$str="email|phone|address|school|country";

4

2 に答える 2

0

お探しarray_intersectですか?

$possible = array('email', 'phone', ...);
$existing = array_intersect($possible, array_keys($_POST));
var_dump($existing);
于 2013-08-27T15:04:12.667 に答える