如何从阵列中打印多个索引?

时间:2017-02-01 18:00:01

标签: php arrays

有点奇怪的标题,对不起。我有一个从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( );
}
?>

2 个答案:

答案 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