2

他の Web サイトからデータを取得して、json 配列に変換しようとしました。

それに使用される次のコード。

foreach($models1 as $mod)
{
    $result[] = array('model'=> $mod);

}

$finalResultArray = array(
        'mobiles' => $result
);

echo json_encode($finalResultArray);

結果は

{"モバイル":[{"モデル":"Apple iPhone 5c 16GB"},{"モデル":"93,000"},{"モデル":"Apple iPhone 5s 16GB"},{"モデル":"117,312" },{"モデル":"Apple iPhone 5 32GB"},{"モデル":"94,280"},{"モデル":"Apple iPhone 4S 16GB"},{"モデル":"82,000"},{"モデル":"Apple iPhone 5 16GB"},{"モデル":"93,000"}]}

この配列をこのように印刷したい

{"モバイル":[{"モデル":"Apple iPhone 5c 16GB"},{"モデル":"Apple iPhone 5s 16GB"},{"モデル":"Apple iPhone 5 32GB"},{"モデル": "Apple iPhone 4S 16GB"},{"モデル":"Apple iPhone 5 16GB"}]}

この JSON 配列から {"model":"93,000"}、{"model":"117,312"} などを削除したい

誰でも私を助けることができます...????

4

5 に答える 5

2

あなたの質問で見られたように、奇数のインデックス番号の配列値を削除したいと考えています。

$i = 0;
foreach($models1 as $mod)
{
    if(($i % 2) == 0) {
        $result[] = array('model'=> $mod);
        $i++;
    }
}
于 2013-10-03T05:08:58.240 に答える
0

配列の作成方法を変更できる場合は、次のようにモジュラス演算子を使用して簡単に行うことができます。

$i=0;
foreach($models1 as $mod)
{
    if(($i+1)%2==1)
    {
        $result[] = array('model'=> $mod);
    }
    $i++;
}

これにより、開始する配列に奇数のみが挿入されます。配列内のすべてのエントリを保持し、奇数のエントリのみを表示する場合は、必要なものだけを出力するようにこの例を簡単に変更できます。

于 2013-10-03T05:08:46.143 に答える
0

このようにjsonを配列に変換し、奇数の値をスキップして配列に保存し、配列をjsonに再度変換することができます

    foreach($models1 as $key => $value)
    {
        if($key%2 == 0)
        {
            $arr_new['mobiles'][] = $value;
        }
    }
    $json_new = json_encode($arr_new);
    echo $json_new;

出力は以下のとおりです

       {"mobiles":[{"model":"Apple iPhone 5c 16GB"},{"model":"Apple iPhone 5s 16GB"},{"model":"Apple iPhone 5 32GB"},{"model":"Apple iPhone 4S 16GB"},{"model":"Apple iPhone 5 16GB"}]}
于 2013-10-03T05:17:21.667 に答える