PHP 循环遍历数组以获取特定值

想知道如何从此数组中获取以下值:campaignID、campaign、impressions、clicks 和 cost。例如,我想得到以下结果:


广告活动 ID - 9039077962 广告活动:CG - 智能购物 - 美国 展示次数 - 1951940 次点击 - 10726 费用 - 5324010696


我已经从 forloop 开始,但无法获取任何值,我刚刚得到: ArrayArrayArray


for($i = 0; $i < count($array); $i++) {

    echo $array[2]['row'][$i]['@attributes']['campaignID'];

}

这是我的数组,它的打印结果:


    $array = simplexml_load_string($reportDownloadResult->getAsString());

 


     print_r( $result );

        

    RESULTS------------------------------------------->

    

       Array

    (

        [report-name] => Array

            (

                [@attributes] => Array

                (

                    [name] => CAMPAIGN_PERFORMANCE_REPORT

                )


        )


    [date-range] => Array

        (

            [@attributes] => Array

                (

                    [date] => Jul 13, 2020-Jul 19, 2020

                )


        )


    [table] => Array

        (

            [columns] => Array

                (

                    [column] => Array

                        (

                            [0] => Array

                                (

                                    [@attributes] => Array

                                        (

                                            [name] => campaignID

                                            [display] => Campaign ID

                                        )


                                )


                            [1] => Array

                                (

                                    [@attributes] => Array

                                        (

                                            [name] => campaign

                                            [display] => Campaign

                                        )


                                )



紫衣仙女
浏览 103回答 2
2回答

繁花如伊

最好使用 Simple XML 的方法来浏览数据,而不是将其视为数组。但如果你真的需要的话,我会在下面展示。我通常建议使用foreach而不是for循环数组。但是,如果您要使用for带有数组索引的循环,它们应该基于count()您要索引的同一数组。count($array)使用然后使用它来索引是没有意义的$array[2]['row']——你应该使用count($array[2]['row']).我不确定你$array[2]的代码来自哪里。顶级数组没有任何编号索引,它是一个关联数组。直到到达深层嵌套的row和column元素之前,才会使用编号索引。foreach ($result['table']['row'] as $row) {&nbsp; &nbsp; $attrs = $row['@attributes'];&nbsp; &nbsp; echo $attrs['campaignID'];&nbsp; &nbsp; echo $attrs['campaign'];&nbsp; &nbsp; echo $attrs['impressions'];&nbsp; &nbsp; // and so on}

心有法竹

<?phpforeach ($result['table']['row'] as $row) {&nbsp; &nbsp; $compaign = $row['@attributes'];&nbsp; &nbsp; echo&nbsp; $compaign['campaignID'].', '.$compaign['campaign'].', '.$compaign['impressions'].', '.$compaign['clicks'].', '.$compaign['cost'].' <br />';}#This would print all the compaign as single compaign per row
打开App,查看更多内容
随时随地看视频慕课网APP