4

こんな機能があります。

function startChatSession($items) {


    foreach ($test as $chatbox => $void) {
            $items .= $this->chatBoxSession($chatbox);
        }

    if ($items != '') {
        $items = substr($items, 0, -1);
    }

    header('Content-type: application/json');
    ?>
    {
        "username": "<?php echo $_SESSION['username'];?>",
       "items": [
            <?php echo $items;?>
        ]
    }

    <?php
    exit(0);
}

この関数の2番目の部分に興味があります。私はそれを次のようなものに翻訳したいと思います:

    echo json_encode(array(
            'username'=>$_SESSION['username'], 
            'items'=>$items
        )); 

    exit;

この種の作品ですが、完全ではありません。

応答は次のようになります。

{
    "username": "johndoe",
    "items": [{
        "s": "1",
        "f": "janedoe",
        "m": "dqwdqwd"
    }, {
        "s": "1",
        "f": "janedoe",
        "m": "sdfwsdfgdfwfwe"
    }, {
        "s": "1",
        "f": "janedoe",
        "m": "werwefgwefwefwefweg"
    }]
}

私の場合、次のようになります。

{
    "username": "johndoe",
    "items": "\t\t\t\t\t   {\r\n\t\t\t\"s\": \"1\",\r\n\t\t\t\"f\": \"babydoe\",\r\n\t\t\t\"m\": \"test\"\r\n\t   },\t\t\t\t\t   {\r\n\t\t\t\"s\": \"1\",\r\n\t\t\t\"f\": \"\",\r\n\t\t\t\"m\": \"\"\r\n\t   }"
}

何か案は?

ありがとう

編集:

私が私を捨てるなら$items、次のようなものです:

{
    s: 1,
    f: babydoe,
    m:  test
}, {
    s: 1,
    f: babydoe,
    m:  test
}, {
    s:1,
    f: babydoe,
    m:  test
}, {
    s: 1,
    f: babydoe,
    m:  test
}
4

3 に答える 3

1

これを試して:

    echo json_encode(array(
        'username'=>$_SESSION['username'], 
        'items'=>array($items)
    )); 

マルチレベルの配列が必要です。

たとえば、コードパッドを参照してください。

于 2012-06-22T21:09:41.370 に答える
1

$items配列は次のようになります。

<?php
$items = array(
  0 => array('s'=>1, 'f'=>'janedoe', 'm'=>'dqwdqwd'),
  1 => array('s'=>1, 'f'=>'janedoe', 'm'=>'sdfwsdfgdfwfwe'),
  2 => array('s'=>1, 'f'=>'janedoe', 'm'=>'werwefgwefwefwefweg')
);

echo json_encode(array(
        'username'=>$_SESSION['username'], 
        'items'=>$items
    ));
?>

http://codepad.org/mZk4hsKq

于 2012-06-22T21:17:21.123 に答える
0

変化する

$items = substr($items, 0, -1);

に:

foreach($items as $index => $d){
$items[$index] = substr($d, 0, -1);
}
于 2012-06-22T22:00:23.130 に答える