1

私はconstruct2でハイスコアボードを構築しており、文字を正しくレイアウトしようとしています。

これを行うために、c2 で配列を作成し、AJAX を使用して、Web サーバーに保持されている php スクリプトから JSON 文字列としてデータを返しています。このデータは、SpriteFonts を埋めるために使用する配列に入力するために使用されます。理論的には十分に単純です。

これは、JSON 文字列を返す php ファイルです。

if ($result = $mysqli->query($sql))  {
    /* fetch associative array */
    while ($row = $result->fetch_assoc()) {
    $array = array(
        array
        (
            'name' =>  $row['pName'],
            'score' => $row['score']
        ));     
        echo json_encode($array);
    }

    /* free result set */
    $result->free();
    exit();
}

これは以下を返します。

[{"name":"developer","score":"56"}]
[{"name":"Terrry","score":"34"}]
[{"name":"Numero_Uno","score":"20"}]
[{"name":"Thomasin :)","score":"18"}]
[{"name":"ThriftyButStillNifty","score":"18"}]
[{"name":"Perfect","score":"17"}]
[{"name":"bah","score":"17"}]
[{"name":"EvilEdna","score":"16"}]
[{"name":"type here","score":"16"}]
[{"name":"Slaine","score":"14"}]

C2 で使用するには、文字列を次の形式にする必要があります。

{"c2array":true,
"size":
    [2,2,1],
"data":
[
[["John"],[23]],
[["Terry"],[43]]
]
}

t'other から 1 つを作成するにはどうすればよいですか?

4

1 に答える 1

1

私はこのようなことをします:

$response = array(
    "c2array" => true,
    "size" => "something",
    "data" => array()
);

while ( $row = $result->fetch_assoc() ) {
    $response['data'][] = array(
        array($row['pName']),
        array($row['score'])
    );
}

echo json_encode($response);
于 2014-06-19T19:08:32.177 に答える