簡體   English   中英

從給定數組中獲取值

[英]fetch value from a given array

我有一個像這樣存儲在$ result中的數組

$result=$array

通過使用echo $ result我得到以下數組

Array
(
    [success] => 1
    [product] => Array
        (
            [id] => 83
            [seo_h1] => 
            [name] => Beer Week
            [manufacturer] => The Boxer Store
            [model] => WPEB/0413/74/BW
            [sku] => WPEB/0413/74/BW
            [reward] => 0
            [points] => 0
            [image] => asd
            [images] => Array
                (
                    [0] => asd
                )

            [quantity] => 4
            [price] => Rs.599
            [special] => 
            [discounts] => Array
                (
                )

            [options] => Array
                (
                    [0] => Array
                        (
                            [product_option_id] => 42
                            [option_id] => 25
                            [name] => Size Option
                            [type] => select
                            [option_value] => Array
                                (
                                    [0] => Array
                                        (
                                            [product_option_value_id] => 165
                                            [option_value_id] => 72
                                            [name] => Large
                                            [option_sku] => 
                                            [image] => asd
                                            [price] => 
                                            [price_prefix] => +
                                        )

                                    [1] => Array
                                        (
                                            [product_option_value_id] => 166
                                            [option_value_id] => 73
                                            [name] => XL
                                            [option_sku] => 
                                            [image] => asd
                                            [price] => 
                                            [price_prefix] => +
                                        )

                                    [2] => Array
                                        (
                                            [product_option_value_id] => 163
                                            [option_value_id] => 70
                                            [name] => Small
                                            [option_sku] => 
                                            [image] => asd
                                            [price] => 
                                            [price_prefix] => +
                                        )

                                    [3] => Array
                                        (
                                            [product_option_value_id] => 164
                                            [option_value_id] => 71
                                            [name] => Medium
                                            [option_sku] => 
                                            [image] => asd
                                            [price] => 
                                            [price_prefix] => +
                                        )

                                )

                            [required] => 1
                        )

                )

            [minimum] => 1
            [rating] => 0
            [description] => as
            [attribute_groups] => Array
                (
                )

            [date_added] => 2014-09-30 12:35:12
            [date_modified] => 2014-10-17 17:33:46
            [currency] => INR
            [status] => 1
        )

)

我可以像這樣單獨獲取結果

$finalid = $array['product']['id']; 
echo $finalid;

但希望使用for循環獲取每個數據,甚至是最內部的數據。 為此我試過這個

$c=count($result);
    for ( $i=0; $i < $c; $i++)
    { 
       echo $array[$i]['id'];
       echo $array[$i]['images'][0];
       echo $array[$i]['options'][0]['product_option_id'];
       echo $array[$i]['images'][0]['option_value'][0]['product_option_value_id'];
       echo $array[$i]['images'][0]['option_value'][1]['product_option_value_id'];
    } 

但它沒有顯示任何結果,任何人都可以告訴它是如何做到的

Use:
$products = $result['product'];
foreach ( $products as $product )
{ 
   echo $product['id'];
   echo $product['images'][0];
   echo $product['options'][0]['product_option_id'];
   echo $product['images'][0]['option_value'][0]['product_option_value_id'];
   echo $product['images'][0]['option_value'][1]['product_option_value_id'];
} 

使用foreach代替,

foreach ( $array['product'] as $product)
    { 
       echo $product['id'];
       echo $product['images'][0];
       echo $product['options'][0]['product_option_id'];
       echo $product['options'][0]['option_value'][0]['product_option_value_id'];
       echo $product['options'][0]['option_value'][1]['product_option_value_id'];
    } 

在這里,您將在$array['product']每個元素內循環,並且對於每個循環, $product將具有$array['product']的當前元素。

你嘗試的錯誤在於[$ i]。 對於每個循環$ i將有0,1,2等,數組索引將是$array['product'][0]等,但是沒有那種元素。 如果您的數組是Indexed array ,則此方法有效,但此處它是Associative Array

您可能需要這樣的遞歸函數來打印多維數組:

function printIt($data){
    if (is_array($data)){
        foreach ($data as $index=>$slice){
            if (is_array($slice)){
                printIt($slice);
            }else{
                echo $index.": ".$slice."<br>";
            }
        }
    }else{
        echo $data."<br>";
    }
}

printIt($yourArray);

試試這個,

    <?php

foreach($result as $res){
    echo '<pre>'; echo $res['id'];

    if(is_array($res['options']) &&  !empty($res['options'])) {
        foreach($res['options'] as $option) {
            echo '<pre>'; echo ($option['product_option_id']);


            if(is_array($option['option_value']) &&  !empty($option['option_value'])) {
                foreach($option['option_value'] as $option_value) {
                    echo '<pre>'; echo $option_value['product_option_value_id'];
            }


        }
    }
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM