首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过多维数组循环

通过多维数组循环
EN

Stack Overflow用户
提问于 2015-07-24 08:05:03
回答 2查看 66关注 0票数 0

我有一个数组:

代码语言:javascript
复制
Array
(
    [0] => stdClass Object
        (
            [id] => 165
            [id_format] => {num}
            [id_value] => 315
            [module_id] => 3
            [name] => Product 1
            [description] => Product 1
            [description_html] => 

    Product 1



            [qty] => 
            [module_row] => 2
            [module_group] => 
            [taxable] => 1
            [single_term] => 0
            [status] => active
            [company_id] => 1
            [prorata_day] => 
            [prorata_cutoff] => 
            [id_code] => 315
            [module_name] => Module
            [pricing] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 1903
                            [pricing_id] => 1903
                            [package_id] => 165
                            [term] => 1
                            [period] => year
                            [price] => 23.4000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [1] => stdClass Object
                        (
                            [id] => 1904
                            [pricing_id] => 1904
                            [package_id] => 165
                            [term] => 2
                            [period] => year
                            [price] => 46.8000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [2] => stdClass Object
                        (
                            [id] => 1905
                            [pricing_id] => 1905
                            [package_id] => 165
                            [term] => 3
                            [period] => year
                            [price] => 70.2000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [3] => stdClass Object
                        (
                            [id] => 1906
                            [pricing_id] => 1906
                            [package_id] => 165
                            [term] => 4
                            [period] => year
                            [price] => 93.6000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [4] => stdClass Object
                        (
                            [id] => 1907
                            [pricing_id] => 1907
                            [package_id] => 165
                            [term] => 5
                            [period] => year
                            [price] => 117.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [5] => stdClass Object
                        (
                            [id] => 1908
                            [pricing_id] => 1908
                            [package_id] => 165
                            [term] => 6
                            [period] => year
                            [price] => 140.4000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [6] => stdClass Object
                        (
                            [id] => 1909
                            [pricing_id] => 1909
                            [package_id] => 165
                            [term] => 7
                            [period] => year
                            [price] => 163.8000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [7] => stdClass Object
                        (
                            [id] => 1910
                            [pricing_id] => 1910
                            [package_id] => 165
                            [term] => 8
                            [period] => year
                            [price] => 187.2000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [8] => stdClass Object
                        (
                            [id] => 1911
                            [pricing_id] => 1911
                            [package_id] => 165
                            [term] => 9
                            [period] => year
                            [price] => 210.6000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                )

        )

    [1] => stdClass Object
        (
            [id] => 168
            [id_format] => {num}
            [id_value] => 318
            [module_id] => 3
            [name] => Product 2
            [description] => Product 2
            [description_html] => 

    Product 2



            [qty] => 
            [module_row] => 20
            [module_group] => 
            [taxable] => 1
            [single_term] => 0
            [status] => active
            [company_id] => 1
            [prorata_day] => 
            [prorata_cutoff] => 
            [id_code] => 318
            [module_name] => Module
            [pricing] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 1993
                            [pricing_id] => 1993
                            [package_id] => 168
                            [term] => 1
                            [period] => year
                            [price] => 34.5000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [1] => stdClass Object
                        (
                            [id] => 1994
                            [pricing_id] => 1994
                            [package_id] => 168
                            [term] => 2
                            [period] => year
                            [price] => 69.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [2] => stdClass Object
                        (
                            [id] => 1995
                            [pricing_id] => 1995
                            [package_id] => 168
                            [term] => 3
                            [period] => year
                            [price] => 103.5000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [3] => stdClass Object
                        (
                            [id] => 2006
                            [pricing_id] => 2006
                            [package_id] => 168
                            [term] => 4
                            [period] => year
                            [price] => 138.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )
1
                    [4] => stdClass Object
                        (
                            [id] => 2017
                            [pricing_id] => 2017
                            [package_id] => 168
                            [term] => 5
                            [period] => year
                            [price] => 172.5000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [5] => stdClass Object
                        (
                            [id] => 1998
                            [pricing_id] => 1998
                            [package_id] => 168
                            [term] => 6
                            [period] => year
                            [price] => 207.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [6] => stdClass Object
                        (
                            [id] => 1999
                            [pricing_id] => 1999
                            [package_id] => 168
                            [term] => 7
                            [period] => year
                            [price] => 241.5000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [7] => stdClass Object
                        (
                            [id] => 2000
                            [pricing_id] => 2000
                            [package_id] => 168
                            [term] => 8
                            [period] => year
                            [price] => 276.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [8] => stdClass Object
                        (
                            [id] => 2001
                            [pricing_id] => 2001
                            [package_id] => 168
                            [term] => 9
                            [period] => year
                            [price] => 310.5000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                )

        )

    [2] => stdClass Object
        (
            [id] => 169
            [id_format] => {num}
            [id_value] => 319
            [module_id] => 4
            [name] => Product 3
            [description] => Product 3
            [description_html] => 

    Product 3



            [qty] => 
            [module_row] => 3
            [module_group] => 
            [taxable] => 1
            [single_term] => 0
            [status] => active
            [company_id] => 1
            [prorata_day] => 
            [prorata_cutoff] => 
            [id_code] => 319
            [module_name] => Module
            [pricing] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 2023
                            [pricing_id] => 2023
                            [package_id] => 169
                            [term] => 1
                            [period] => year
                            [price] => 15.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [1] => stdClass Object
                        (
                            [id] => 2024
                            [pricing_id] => 2024
                            [package_id] => 169
                            [term] => 2
                            [period] => year
                            [price] => 30.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [2] => stdClass Object
                        (
                            [id] => 2025
                            [pricing_id] => 2025
                            [package_id] => 169
                            [term] => 3
                            [period] => year
                            [price] => 45.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [3] => stdClass Object
                        (
                            [id] => 2026
                            [pricing_id] => 2026
                            [package_id] => 169
                            [term] => 4
                            [period] => year
                            [price] => 60.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [4] => stdClass Object
                        (
                            [id] => 2027
                            [pricing_id] => 2027
                            [package_id] => 169
                            [term] => 5
                            [period] => year
                            [price] => 75.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [5] => stdClass Object
                        (
                            [id] => 2028
                            [pricing_id] => 2028
                            [package_id] => 169
                            [term] => 6
                            [period] => year
                            [price] => 90.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [6] => stdClass Object
                        (
                            [id] => 2029
                            [pricing_id] => 2029
                            [package_id] => 169
                            [term] => 7
                  1          [period] => year
                            [price] => 105.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [7] => stdClass Object
                        (
                            [id] => 2030
                            [pricing_id] => 2030
                            [package_id] => 169
                            [term] => 8
                            [period] => year
                            [price] => 120.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                    [8] => stdClass Object
                        (
                            [id] => 2031
                            [pricing_id] => 2031
                            [package_id] => 169
                            [term] => 9
                            [period] => year
                            [price] => 135.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => CAD
                        )

                )

        )

我想循环通过数组,并只返回每个产品的价格,为每一个学期(1年,2年和3年),在一个表。

...but,我甚至不能循环遍历数组。

下面是调用API并返回std对象的代码:

代码语言:javascript
复制
$api = new Api($url, $user, $key);
$model = "packages";
$method = "getAllPackages";
$params = array('package_group_id'=>'2');
$response = $api->get($model, $method, $params);

这里是我尝试过的:

以下内容返回一个错误:“不能使用STDClass类型的对象作为数组”

代码语言:javascript
复制
for ($i=0;$i<sizeof($response);$i++) {
    echo $response[$i]->pricing[$i]->price;
}

我也尝试过:

代码语言:javascript
复制
$i = 165; 
$response->pricing[$i]->price;

我也试过了:

代码语言:javascript
复制
//loop the response
foreach($response as $obj){

    //check is it contains the pricing details
    if(is_array($obj->pricing)){
        //loop the price for each object
        foreach($obj->pricing as $pricingObj){
            //store the unique id and price
            $data[$pricingObj->id] = $pricingObj->price;
        }
    }
}

//print the result
print_r($data);

和我也试过了:

代码语言:javascript
复制
foreach ($response as $item) {
    foreach ($item->pricing as $pricing) {
        var_dump($pricing->price);
    }
}

...but :没有什么对我有用的。

谢谢你在这方面的帮助!

EN

回答 2

Stack Overflow用户

发布于 2015-07-24 08:23:51

代码语言:javascript
复制
   $api = new Api($url, $user, $key);
   $model = "packages";
   $method = "getAllPackages";
     $params = array('package_group_id'=>'2');
    $response = $api->get($model, $method, $params);
   foreach($response as $resp)
   {
                  foreach($resp->pricing as $key=>$pricing )
                  {
                        echo $pricing[$key]->price."<br>"; 
                  }
   }

请使用打印每个术语的价格。

票数 0
EN

Stack Overflow用户

发布于 2015-07-24 08:51:40

您可以这样循环响应。此代码只适用于价格对象id在整个对象中是唯一的。

代码语言:javascript
复制
<?php 
$data = array();
$api = new Api($url, $user, $key);
$model = "packages";
$method = "getAllPackages";
$params = array('package_group_id'=>'2');
$response = $api->get($model, $method, $params);

//loop the response
foreach($response as $obj){

    //check is it contains the pricing details
    if(is_array($obj->pricing)){
        //loop the price for each object
        foreach($obj->pricing as $pricingObj){
            //store the unique id and price
            $data[$pricingObj->id] = $pricingObj->price;
        }
    }
}

//print the result
print_r($data);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31605252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档