Как получить значение quote_path в ассоциативном массиве, где ключ может изменяться в динамике c l oop? - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь получить значение на основе указанного ключа c. Ключ входит в al oop, но индекс ключа меняется. Для одного случая это может быть 48, для другого - 50. Совместное использование массива ниже-

 [info_buyRequest] => Array
            (
                [uenc] => aHR0cDovL2xvY2FsaG9zdC9TdGlja2VyaXR3ZWIvY3VzdG9tLXN0aWNrZXJzL3RyYW5zZmVyLXN0aWNrZXJzLmh0bWw,
                [product] => 12
                [selected_configurable_option] => 
                [related_product] => 
                [qty] => 1
                [custom_quantity] => 500
                [custom_price1] => 303
                [options] => Array
                    (
                        [47] => 
                        [48] => Black
                        [49] => 8x10 cm
                        [51] => 
                        [76] => 500 pcs
                        [50] => Array
                            (
                                [type] => image/png
                                [title] => project_it_Side_Logo.png
                                [quote_path] => custom_options/quote/S/t/056de63143470f3907e354cd38f2dd3a.png
                                [order_path] => custom_options/order/S/t/056de63143470f3907e354cd38f2dd3a.png
                                [fullpath] => /var/www/html/project/pub/media/custom_options/quote/S/t/056de63143470f3907e354cd38f2dd3a.png
                                [size] => 57385
                                [width] => 1294
                                [height] => 353
                                [secret_key] => 056de63143470f3907e3
                            )

                    )

                [skipbutton] => 0
            )

Ответы [ 2 ]

1 голос
/ 13 января 2020

Попробуйте приведенный ниже код. Это работает для вас.

$options = $objectName["info_buyRequest"]["options"];
$quotePaths = [];

foreach($options as $option){
   if( is_array ($option) && isset($option['quote_path'])){
     $quotePaths[] = $option['quote_path'];
   }
}
1 голос
/ 13 января 2020

Выполните итерацию по массиву options и найдите массив, используя is_array, например:

$array = $yourObjectName["info_buyRequest"]["options"];
$innerArray = array();
foreach($array as $value){
   if( is_array ($value)){
     $innerArray = $value;
     break;
   }

}
...