0

というフォームフィールドがあります$_POST['hidden-tags']

次のように値が入力されています

cars, vans, bikes, trains,

投稿時に、値を分割して配列に保存し、その配列を別の配列と比較して、異なる値のみを表示しようとしています。データをテストしたので、 $arr1 に値があることはわかっています。

私がこれまで持っているコードは

  $arr1;

  $arr2 = array();

foreach($_POST['hidden-tags'] as $value){
$arr2[] = explode(",",$value);  
}

print_r($arr2);

   // $tmp = array_diff_key($arr1, $arr2);
     //  echo $tmp;

ここでスタック PHP 爆発配列で見つけた部分

ご覧のとおり、最後のビットをコメントアウトしています。これは、配列の値を確認できるようにするためです。$arr2 をエコーすると、画面に表示されるのは

配列()

車、バイク、バンを入力したにもかかわらず。2 つの配列を比較して $tmp 変数を表示するところまではまだ行っていません。

4

3 に答える 3

1

$_POST['hidden-tags']テキスト入力フィールドですか?foreachその場合、配列に分割するためにa を実行する必要はありません。それを分解して、生成された配列を既に持っている配列と比較するだけです。

于 2013-02-05T15:55:06.663 に答える
0

$_POST['hidden-tags'] は配列ではなく、分割したい文字列だと思います。

また、分割アクションの結果を $arr2 の次のインデックスにある POST 変数に保存したくないと思います。これは、分割が配列を返し、このようにして配列に配列が含まれるためです。

于 2013-02-05T15:57:31.230 に答える
0
    $arr1;

    $arr2 = array();

    $arr2[] = explode(",",$_POST['hidden-tags']);  

    print_r($arr2);

    $tmp = array_diff_key($arr1, $arr2);
    echo $tmp;
于 2013-02-05T16:16:55.403 に答える