簡體   English   中英

從多維數組PHP返回值

[英]Returning values from a multidimensional array php

我希望有更好的方法從下面的數組中返回cy_GB['value]en_GB['value]

MultilingualSelectAttributeTypeOptionList Object (
    [options:MultilingualSelectAttributeTypeOptionList:private] => Array
        (
            [0] => MultilingualSelectAttributeTypeOption Object
                (
                    [error] => 
                    [id] => 7
                    [values] => Array
                        (
                            [cy_GB] => Array
                                (
                                    [id] => 13
                                    [value] => Audio described
                                )

                            [en_GB] => Array
                                (
                                    [id] => 14
                                    [value] => Audio described
                                )

                        )

                    [th] => TextHelper Object
                        (
                        )

                )

            [1] => MultilingualSelectAttributeTypeOption Object
                (
                    [error] => 
                    [id] => 3
                    [values] => Array
                        (
                            [cy_GB] => Array
                                (
                                    [id] => 5
                                    [value] => BSL signed
                                )

                            [en_GB] => Array
                                (
                                    [id] => 6
                                    [value] => BSL signed
                                )

                        )

                    [th] => TextHelper Object
                        (
                        )

                )

        )

    [error] => 
)

這就是我嘗試過的。 我還應該使用更有意義的名稱:

foreach ($selectedOptions as $row) {

    foreach ($row as $key) {

        foreach ($key as $k => $v) {

            if($k == 'cy_GB') {
                echo $v['value'];
            }

            if($k == 'en_GB') {
                echo $v['value'];
            }

        }

    }

}

我知道這種事情已經被問過很多次了,對此我深表歉意。 非常感激任何的幫助。

這樣的事情可能會起作用:

function findKeyRec($obj, $search) {

  if( !is_array( $obj ) && !$obj instanceof Traversable ) return;

  foreach($obj as $key => $value) {
    if($key == $search) {
        echo $value['value'];
    } else {
       findKeyRec($value, $search);
    }
  }
}

findKeyRec($ar, 'cy_GB');
findKeyRec($ar, 'en_GB');

它並不短,但我認為它更優雅,並且可以與任何對象/數組結構一起使用。

未經測試。

暫無
暫無

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

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