Как автоматично да знам името на поле от масив в php?

Имам само малък въпрос, не мога да намеря отговор, тъй като не знам как точно да го формулирам в Google.

Така че имам този масив, върнат от заявка:

Array
(
    [0] => Array
        (
            [aad3177ec0cbced7a15fae003bdd0ff3] => Array
                (
                    [rowid] => aad3177ec0cbced7a15fae003bdd0ff3
                    [id] => 21
                    [qty] => 1
                    [price] => 176
                    [name] => KRUPS YY1305 
                    [image] => utilities/images/products/p2070396dt.jpg
                    [description] => Menu simplifié pour une convivialité optimale.   
                    [subtotal] => 176
                )
        )
)

И искам да получа цялата информация rowid, id, qty ... за да я съхраня чрез foreach цикъл в друга променлива, без да знам името на втория масив: 'aad3177ec0cbced7a15fae003bdd0ff3'. Просто искам да извлека статии от количка, съхранена в база данни, когато потребителят излезе.

И така, как мога да кажа нещо като:

echo $myArray['0'][theNumberGoesHereAutomatically]['price'];

В идеалния случай моят код ще изглежда така:

foreach ($data2 as $cart){
            $data = array(
                   'rowid'      => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['rowid'],
                   'id'         => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['id'],
                   'qty'        => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['qty'],
                   'price'      => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['price'],
                   'name'       => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['name'],
                   'image'      => $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['image'],
                   'description'=> $cart_unserialized[$token]['aad3177ec0cbced7a15fae003bdd0ff3']['description'],
                );
            $this->cart->insert($data2);
            $token++;
        };

без да познава aad3177ec0cbced7a15fae003bdd0ff3.

Някакви идеи? Благодаря :)


person Miles M.    schedule 19.01.2012    source източник
comment
Опитахте ли да получите името с array_keys()?   -  person bkzland    schedule 19.01.2012
comment
Да това е !! Благодаря много :) (Ами да, очевидно беше лесно, но най-трудното е да знаеш, че тази функция съществува ;p)   -  person Miles M.    schedule 19.01.2012


Отговори (3)


Можете да направите това лесно с:

foreach ($data2 as $varname => $cart){

$varname ще съдържа aad3177ec0cbced7a15fae003bdd0ff3.

person klennepette    schedule 19.01.2012

Можете да получите ключа с функцията key()

person dev-null-dweller    schedule 19.01.2012

Използвайте функцията current:

foreach ($data2 as $token=>$cartUnserialized){
    $data = current($cartUnserialized);
    // .. proccess your data ..
};
person Timur    schedule 19.01.2012
comment
Ооооо да, това е най-доброто! Много благодаря - person Miles M.; 20.01.2012