0

我需要使用两个数组的内容创建一个 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不同的长度,它现在将使用两者中最短的一个。

于 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 回答