0

2つの配列のコンテンツを使用してJSONファイルを作成する必要があります。

$titles=array("title1"..."title20")
$urls=array("http://url1.com"..."http:/url5.com");

次のJSON形式で:

{resultCount = 5;
    results =[
{"title":title1, "url":http://url1.com}
{"title":title2, "url":http://url2.com}
{"title":title3, "url":http://url3.com}
{"title":title4, "url":http://url4.com}
{"title":title5, "url":http://url5.com}]
}

どうすればこれを達成できるか知っている人はいますか?

私は本当にあなたの助けに感謝します。

4

2 に答える 2

4

結果で配列を作成し、compact使用しますjson_encode

$resultCount = min(count($titles), count($urls));
$results = array();
for ($i=0; $i < $resultCount; $i++) {
  $results[] = array('title'=>$titles[$i], 'url'=>$urls[$i]);
}

echo json_encode(compact('resultCount', 'results'));

$titlesとが同じ長さでない場合$urls、2 つのうちの短い方が使用されるようになりました。

于 2013-01-03T23:58:16.067 に答える
0

これはあなたが望んでいたように機能しますか?

$array_1 = array("title1", "title2", "title3", "title4", "title5");
$array_2 = array("http://url1.com", "http://url2.com", "http://url3.com", "http://url4.com", "http://url5.com");

function formatForJSON($first_array, $second_array) {

    $results = array();
    $resultCount = count($first_array);

    if ($resultCount != count($second_array)) 
        $resultCount = max(count($first_array), count($second_array));

    for ($x = 0, $y = 0; $x <= count($first_array)-1, $y <= count($second_array)-1; $x++, $y++)
        array_push($results, array('title' => $first_array[$x], 'url' => $second_array[$y]));

    return compact('resultCount', 'results');
}

echo '<pre>' . json_encode(formatForJSON($array_1, $array_2)) . '</pre>';

編集:ああ-忍者だ

于 2013-01-04T00:08:30.097 に答える