2013-01-03 68 views
0

我需要用两个数组的内容,以创建一个JSON文件JSON文件:任何你知道哪有创建2个阵列

{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}] 
} 

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

具有以下JSON格式我完成了这个?

我真的很感谢你的帮助。

+0

创建正是您的最终JSON结构相匹配,然后使用'json_encode'的(嵌套)阵列。 –

+0

是$ title和$ url的长度相同吗? – vodich

+0

@vodich标题或网址都不是相同的长度。 – Juan

回答

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是不一样的lenght现在会用最短的两个。

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>'; 

编辑:唉唉 - Ninja'd