PHP создать массив объектов без ключей - PullRequest
0 голосов
/ 11 июня 2018

Прошло много времени с тех пор, как я возился с PHP, но мне нужно сейчас.

Я пытаюсь выполнить следующее из PHP MySQL:

"holeScores": [
  {
    "type": "RoundHoleData",
    "xtraStrokes": 0,
    "strokes": 3
  },
  {
    "type": "RoundHoleData",
    "xtraStrokes": 1,
    "strokes": 5
  },
  {
    "type": "RoundHoleData",
    "xtraStrokes": 0,
    "strokes": 5
  }
]

Вот какЯ пытаюсь сделать это:

$userCard = array();

$sql = "SELECT * FROM fb_score WHERE userid=$player AND matchid=$matchid ORDER BY hole_no ASC";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {

        $scoreInf = array(
            "type"=> "RoundHoleData",
            "xtraStrokes"=> $row["hXtra"],
            "strokes"=> $row["stroke"]
        );

        $userCard[] = $scoreInf;
    }
}



$matchResultArray = array("userid"=>$player
                      , "matchform"=>$matchformid
                      , "totScore"=>$totScore
                      , "par_score"=>$par_score
                      , "placement"=>$i
                      , "holeScores"=>$userCard
                      , "usercardInfo"=>$userCardInfo
                      );


echo json_encode($matchResultArray, 16);

Это привело к такому результату:

"usercard":{  
    "0":{  
       "type":"RoundHoleData",
       "xtraStrokes":"0",
       "strokes":"4"
    },
    "1":{  
       "type":"RoundHoleData",
       "xtraStrokes":"1",
       "strokes":"5"
    },
    "2":{  
       "type":"RoundHoleData",
       "xtraStrokes":"1",
       "strokes":"5"
    }
}

Можно ли в любом случае создать правильный формат объекта json, и если да, то как ... Как?!?

Любая помощь приветствуется и спасибо заранее: -)

1 Ответ

0 голосов
/ 11 июня 2018

Вы используете константу JSON_FORCE_OBJECT в json_encode (второй аргумент, 16), которая также преобразует массивы в объекты.Попробуйте удалить второй аргумент, используйте json_encode($matchResultArray) вместо ..

...