0

foreachループを介して配列に値を追加しようとしたときに問題が発生しました。基本的に、このフォームには、ユーザーがトピックごとに2つのラジオボタンで「好き」または「嫌い」をクリックできるトピックがたくさんあります。次に、「いいね」と「嫌い」を2つの別々の配列に集めてデータベースに挿入したいのですが、正しくありません。HTMLコードのサンプルを次に示します。

Action movies  Like<input type="radio" name="1" value="1" />  Dislike<input type="radio" id="2" name="1" value="2" />

そしてPHPコード:

if (isset($_POST['submit'])) {
    $likes = array();
    $dislikes = array();

    foreach($_POST as $key => $value) {

        /* $key is the name of the object an user can click "like" or "dislike" on, $value   
        is either 'like', which is equal to '2' or 'dislike', equal to '1' */
        if ($value > 1) { array_push($likes, $key); } else { array_push($dislikes, $key); 
    }
} 
echo 'The object(s) the user likes: ' . $likes . ' , 
       and the object(s) the user dislikes: ' . $dislikes;

しかし、私はこれを受け取ります:

「ユーザーが好きなオブジェクト:配列、およびユーザーが嫌うオブジェクト:配列」

私がここで犯したのは、ばかげた間違いだと確信しています。私はこれをかなりグーグルで検索しましたが、私を助ける解決策を見つけることができませんでした。

4

1 に答える 1

2

文字列にキャストされたときの配列は、単に文字列として出力されます"Array"配列内の各要素を出力する場合は、それらをループするか、次のようなものを使用しますjoin

echo join(', ', $likes);

array_push正常に動作しています。

于 2012-07-25T12:46:26.517 に答える