有点奇怪的标题,对不起。我有一个从this PHP脚本生成的数组,它与游戏服务器通信以从中获取信息。
一位朋友告诉我,我应该能够通过一个foreach循环来做到这一点,但我一直在尝试,但没有成功。吮吸PHP。
这是我坚持使用的代码部分。
try
{
$Query->Connect( SQ_SERVER_ADDR, SQ_SERVER_PORT, SQ_TIMEOUT, SQ_ENGINE );
$info = $query->getInfo();
foreach ($info $index => $1) {
if ($index == 6 || $index == 7) {
echo $1;
}
/*print_r( $Query->GetInfo( ) );
print_r( $Query->GetPlayers( ) );
print_r( $Query->GetRules( ) ); */
}
catch( Exception $e )
{
echo $e->getMessage( );
}
finally
{
$Query->Disconnect( );
}
?>
答案 0 :(得分:1)
更改您的foreach语法
添加为
foreach ($info as $index => $i) {
if ($index == 6 || $index == 7) {
echo $i;
}
实施例: 假设您的数组如下所示
$game = [
0 => 'cricket',
1 => 'baseball',
2 => 'footbal'
];
然后您可以获得索引和值,如下所示。
foreach($game as $index => $value)
{
echo "index is $index and game is $value";
}
会打印
index is 0 and game is cricket
index is 1 and game is baseball
index is 2 and game is football
希望这将清除您的基本foreach概念
答案 1 :(得分:1)
你在某处有$Query = new SourceQuery();
行吗?
如果此行有效
$Query->Connect(....);
然后这行不会
$info = $query->getInfo();
由于第一行使用名为$Query
的对象,而第二行使用名为$query
的对象时应使用名为$Query
的对象。
在这种情况下的案例是非常相关的。
同样$info = $query->getInfo();
应为$info = $Query->GetInfo();
这一行也是非法的,我原以为它会抛出错误信息
foreach ($info $index => $1) {
缺少as
语法且$1
不合法,因为变量必须以字母字符开头
应该是
foreach ($info as $index => $value) {
if ($index == 6 || $index == 7) {
echo $value;
}
} // you were also missing the closing bracket on your foreach loop