我想要一些建议来优化我的PHP代码,我使用的是API,有时它会返回一个结果或结果数组,如下所示:
第一种可能性:
Array
(
[collection] => Array
(
[links] => Array
(
[id] => 1
[url] => www.google.fr
)
)
)
或第二种可能性:
Array
(
[collection] => Array
(
[links] => Array
(
[0] => Array
(
[id] => 1
[url] => www.google.fr
)
[1] => Array
(
[id] => 2
[url] => www.google.fr
)
[2] => Array
(
[id] => 3
[url] => www.google.fr
)
)
)
)
如何针对这种情况优化我的代码?
$url = '';
$nb_results = count($array['collection']['links']);
if($nb_results == 1){
$url .= $array['collection']['links']['url'];
} else {
foreach( $array['collection']['links'] as $r){
$url .= $r['url'].'<br />';
}
}
如果API只返回一个结果,则根据该结果生成一个数组并使用foreach。正因为如此,在创建$url
变量时不需要使用if..else
。看看这个代码:
// checking if links is array; if not - make array with one returned element from API
$data = isset($array['collection']['links'][0]) ? $array['collection']['links'] : array($array['collection']['links']);
foreach( $data as $r)
{
$url .= $r['url'].'<br />';
}