PHP爆炸了一个mysql行并获得了大小

时间:2015-01-23 20:11:59

标签: php mysql arrays

$games = $row[Games];

foreach(explode(",",$games) as $game){
echo "$game <br/>";
}    

$row[Games] = 'Game1,Game2,Game3,Game4,'

我想获得sizeof($游戏)。如果它小于2,它将起作用,否则它将始终为2.“foreach”的输出是这样的:

Game1
Game2
Game3
Game4

4 个答案:

答案 0 :(得分:0)

count($games)输出数组中的项目数。

答案 1 :(得分:0)

您可以使用来计算数组的元素。

$row['Games'] = 'Game1,Game2,Game3,Game4,'
$games = explode(",",$row['Games']);

echo count($games);

foreach($games as $game){ 
    echo "$game <br/>";
}    

您的数组声明中应该是'"。否则你有一个常数。

我不知道您的数据是否来自数据库。但是在数据库中保存逗号分隔值并不是一个好主意。您应该规范化表格。非常讨厌改变你的价值观有这样的清单。

答案 2 :(得分:0)

使用rtrim首先从字符串中删除尾随逗号。

$cleanString = rtrim($games, ",");
echo count(explode(",", $cleanString))

输出:

4

explode拆分字符串时,由于尾随逗号,数组如下所示:

["game1", "game2", "game3", "game4", ""]

当在网络浏览器上回显时:

game1<br />
game2<br />
game3<br />
game4<br />
<br />

但最后一行在浏览器上不可见。

答案 3 :(得分:0)

尝试这样:你的数组声明中有一个错误。它应该是$ row [&#39; Games&#39;]而不是$ row [游戏]

<?php 
   $row['Games'] = 'Game1,Game2,Game3,Game4';
   $games = $row['Games'];
   $game = explode(',',$games);
   print_r($game);   // output: Array ( [0] => Game1 [1] => Game2 [2] => Game3 [3] => Game4 )
   echo count($game); // output : 4
?>