Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 解析数组的最佳方法_Php_Arrays - Fatal编程技术网

Php 解析数组的最佳方法

Php 解析数组的最佳方法,php,arrays,Php,Arrays,我想要一些建议来优化我的PHP代码,我正在使用一个API,有时它会返回一个结果或一组结果,如下所示: 第一种可能性: Array ( [collection] => Array ( [links] => Array ( [id] => 1 [url] => www.google.fr )

我想要一些建议来优化我的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
                        )
                )              
        )
)
或第二种可能性:

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'].
; }