Как автоматически узнать имя поля массива в php? - PullRequest
1 голос
/ 19 января 2012

У меня просто маленький вопрос, я не могу найти ответа, так как не знаю, как его сформулировать в 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.

Есть идеи? Спасибо:)

Ответы [ 4 ]

6 голосов
/ 19 января 2012

Вы можете сделать это легко с помощью:

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

$varname будет содержать aad3177ec0cbced7a15fae003bdd0ff3.

2 голосов
/ 19 января 2012
foreach($array as $key => $value)
{
  echo $value['price'];
}
1 голос
/ 19 января 2012

Вы можете получить ключ с помощью функции key()

0 голосов
/ 19 января 2012

Использование current Функция:

foreach ($data2 as $token=>$cartUnserialized){
    $data = current($cartUnserialized);
    // .. proccess your data ..
};
...