2013-01-03 97 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