为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
紫衣仙女 2023-08-19 16:43:50
想知道如何从此数组中获取以下值:campaignID、campaign、impressions、clicks 和 cost。例如,我想得到以下结果:广告活动 ID - 9039077962 广告活动:CG - 智能购物 - 美国 展示次数 - 1951940 次点击 - 10726 费用 - 5324010696我已经从 forloop 开始,但无法获取任何值,我刚刚得到: ArrayArrayArrayfor($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                                        )                                )
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

最好使用 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) {

    $attrs = $row['@attributes'];

    echo $attrs['campaignID'];

    echo $attrs['campaign'];

    echo $attrs['impressions'];

    // and so on

}


查看完整回答
反对 回复 2023-08-19
?
心有法竹

TA贡献1866条经验 获得超5个赞

<?php

foreach ($result['table']['row'] as $row) {

    $compaign = $row['@attributes'];

    echo  $compaign['campaignID'].', '.$compaign['campaign'].', '.$compaign['impressions'].', '.$compaign['clicks'].', '.$compaign['cost'].' <br />';

}


#This would print all the compaign as single compaign per row


查看完整回答
反对 回复 2023-08-19
  • 2 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信