array_push在foreach循环中不起作用

时间:2012-07-25 12:44:26

标签: php foreach array-push

尝试通过foreach循环向数组添加值时遇到问题。  基本上我有这样的形式,其中有一堆主题,用户可以点击“喜欢”或“不喜欢”每个主题有两个单选按钮。然后我想在两个单独的数组中收集“喜欢”和“不喜欢”,并将它们插入到数据库中,但是我做的不正确。 以下是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;
然而,我收到了这个:

“用户喜欢的对象:数组,以及用户不喜欢的对象:数组”

我确定这只是我在这里犯的一些愚蠢的错误。我已经搜索了很多,但我找不到任何可以帮助我的解决方案。

1 个答案:

答案 0 :(得分:2)

当转换为字符串时,数组将仅作为字符串"Array"输出。如果要输出数组中的每个元素,请循环使用它们或使用join之类的内容:

echo join(', ', $likes);

array_push工作得很好。