2010-10-07 54 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'];