Php 解析数组的最佳方法
我想要一些建议来优化我的PHP代码,我正在使用一个API,有时它会返回一个结果或一组结果,如下所示: 第一种可能性:Php 解析数组的最佳方法,php,arrays,Php,Arrays,我想要一些建议来优化我的PHP代码,我正在使用一个API,有时它会返回一个结果或一组结果,如下所示: 第一种可能性: Array ( [collection] => Array ( [links] => Array ( [id] => 1 [url] => www.google.fr )
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
)
)
)
)
或第二种可能性:
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 />';
}
}
$url='';
$nb_results=count($array['collection']['links']);
如果($nb_结果==1){
$url.=$array['collection']['links']['url'];
}否则{
foreach($r数组['collection']['links']as$r){
$url.=$r['url'].
;
}
}
如果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 />';
}
//检查链接是否为数组;如果不是-使用API返回的一个元素生成数组
$data=isset($array['collection']['links'][0])$数组['collection']['links']:数组($array['collection']['links']);
foreach($r数据)
{
$url.=$r['url'].
;
}