Autor Zpráva
Hitman
Profil
Trochu se ztácím v poli s objekty. Mám následující:

Array ( [0] => stdClass Object ( [custom_id] => 28 [custom_title] => Provedení [custom_value] => [custom_field_desc] => [custom_tip] => [field_type] => S [virtuemart_customfield_id] => 8838 [is_hidden] => 0 [options] => Array ( [8838] => stdClass Object ( [product_id] => 668370 [custom_params] => 0 [custom_element] => 0 [custom_title] => Provedení [custom_id] => 28 [virtuemart_customfield_id] => 8838 [custom_value] => Postříbření [custom_price] => 99  [custom_vo_price] => 0 [custom_param] => [custom_sku] => [custom_stock] => 127 [custom_img] => [custom_code] => 0 [is_list] => 0 [text] => Postříbření [field_type] => S [is_cart] => 1 ) [8839] => stdClass Object ( [virtuemart_product_id] => 668370 [custom_params] => 0 [custom_element] => 0 [custom_title] => Provedení [virtuemart_custom_id] => 28 [virtuemart_customfield_id] => 8839 [custom_value] => Ve stříbře [custom_price] => 199  [custom_vo_price] => 0 [custom_param] => [custom_sku] => [custom_stock] => 127 [custom_img] => [custom_code] => 0 [is_list] => 0 [text] => Ve stříbře [field_type] => S [is_cart] => 1 ) ) 

A potřebuji z toho vypsat to co je tučně. Je to ale objekt v objektu.

Procházím cyklem foreach, takže potom mám:

$polozka->custom_title

mi vypíše Provedení z prvního objektu. Ale jak vypsat ten objekt v něm? To druhé pole "[options] => Array ( [8838] " je v objektu options, nebo jak si to mám představit?

Díky
juriad
Profil
$polozky = Array (
  [0] => stdClass Object (
    [custom_id] => 28 
    [custom_title] => Provedení 
    [custom_value] => 
    [custom_field_desc] => 
    [custom_tip] => 
    [field_type] => S 
    [virtuemart_customfield_id] => 8838 
    [is_hidden] => 0 
    [options] => Array (
      [8838] => stdClass Object ( 
        [product_id] => 668370 
        [custom_params] => 0 
        [custom_element] => 0 
        [custom_title] => Provedení 
        [custom_id] => 28 
        [virtuemart_customfield_id] => 8838 
        [custom_value] => Postříbření 
        [custom_price] => 99  
        [custom_vo_price] => 0 
        [custom_param] => 
        [custom_sku] => 
        [custom_stock] => 127 
        [custom_img] => 
        [custom_code] => 0 
        [is_list] => 0 
        [text] => Postříbření 
        [field_type] => S 
        [is_cart] => 1 
      ) 
      [8839] => stdClass Object ( 
        [virtuemart_product_id] => 668370 
        [custom_params] => 0 
        [custom_element] => 0 
        [custom_title] => Provedení 
        [virtuemart_custom_id] => 28 
        [virtuemart_customfield_id] => 8839 
        [custom_value] => Ve stříbře 
        [custom_price] => 199  
        [custom_vo_price] => 0 
        [custom_param] => 
        [custom_sku] => 
        [custom_stock] => 127 
        [custom_img] => 
        [custom_code] => 0 
        [is_list] => 0 
        [text] => Ve stříbře 
        [field_type] => S 
        [is_cart] => 1 
      ) 
    )

Přeformátováno.


Je to objekt, který obsahuje atribut jménem options, ve kterém je uložené pole, které obsahuje objekty, které obsahují atribut custom_value.

foreach($polozky as $polozka) {
  echo $polozke->custom_title; # toto umíš; vypíše "Provedení" z toho hlavního objektu
  foreach ($polozka->options as $option) { # iterace přes bíle vyznačené pole
    echo $option->custom_value; # výpis atributu custom_value v každé option; vypíše tedy: "Postříbření" a "Ve stříbře"; 
  }
}
Hitman
Profil
Aha, to mě nenapadlo procházet takhle cyklus v cyklu. Díky :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0