2010-10-07 68 views
0

我試圖讓這個函數返回數組(?)中的多個結果。來自函數的多個響應

的所以基本上不是運行lookup("354534", "name");和不同的結果lookup("354534", "date");多發幾次,我怎麼可以從函數返回兩個名字&日期,然後回顯出來,所以我只有一次使用的功能?

function lookup($data, $what) 
{ 
    $json = file_get_contents("http://site.com/".$data.".json"); 
    $output = json_decode($json, true); 
    echo $output['foo'][''.$what.'']; 
} 

謝謝!

+0

的[從函數返回多(可能的複製http://stackoverflow.com/questions/3451906/multiple-returns-從功能) – miken32 2016-05-29 04:08:21

回答

0

有函數返回的整個JSON結果:

function lookup($data) 
{ 
    $json = file_get_contents("http://site.com/".$data.".json"); 
    $output = json_decode($json, true); 
    return $output["foo"]; 
} 

那麼你可以做

$result = lookup("354534"); 

echo $result["name"]; 
echo $result["date"]; 

這確實是個好主意,因爲否則的話,你會作出(慢)的file_get_contents多次請求,你想避免的事情。

+0

是的,這就是爲什麼我不想多次運行它,這樣做是沒有意義的。直到現在我才知道該怎麼做,謝謝佩卡! – user468797 2010-10-07 23:42:47

+0

實際上,當我運行代碼時,我得到消息:未定義索引:日期。任何理由? – user468797 2010-10-07 23:50:41

+0

@user在這種情況下,json可能不包含名爲「date」的字段 – 2010-10-07 23:51:51

0

substitue echoreturn你的函數,並返回整個數組:

function lookup($data){ 
    ... 
    return $output; 
    } 

... 

$results = lookup($someData); 
echo $results['name'] . $results['date'];