array_push无法在foreach循环中工作
我试图通过foreach循环向数组中添加值时遇到了问题。 基本上我有这种形式,其中有一堆话题,用户可以点击'喜欢'或'不喜欢'每个主题的两个单选按钮。然后我想要在两个单独的数组中收集“喜欢”和“不喜欢”,并将它们插入到数据库中,但我做的不正确。 下面是从HTML代码的示例:array_push无法在foreach循环中工作
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;
我然而收到此:
“的对象(一个或多个)用户喜欢:数组,以及用户不喜欢的对象:阵列“
我敢肯定,这只是我在这里犯的一个愚蠢的错误。我已经搜索了很多,但我一直没有找到任何可以帮助我的解决方案。
将数组转换为字符串时的数组将简单地输出为字符串"Array"
。如果你想输出阵列中的每个元素,遍历它们或使用类似join
:
echo join(', ', $likes);
array_push
工作就好了。
+1,但奇怪的? – 2012-07-25 12:47:14
因为它对我来说更有意义,并且没有任何缺点。 – deceze 2012-07-25 12:48:14
join(',',$ likes);完美地工作。感谢你及时的答复。 – DannyCruzeira 2012-07-25 12:48:14
为什么你使用的别名'加入()''主场迎战破灭()'直接标识及名称不能只有数字(或一个开始) – Shikiryu 2012-07-25 12:46:20