web-dev-qa-db-fra.com

Comment récupérer un tableau de la table de session Joomla

J'ai ajouté les données à la session Joomla en tant que:

$cart['items'][] = array('id' => 1, 'name' => 'Laptop');
$cart['items'][] = array('id' => 2, 'name' => 'Tablet');
$session->set('cart', $cart);

Si je veux récupérer les données et utiliser

$cart_result = $session->get('cart');
echo $cart_result;

Je ne reçois que la Parole Tablea. Comment puis-je récupérer les données correctement? S'il vous plaît écrivez différentes options: pour un tableau entier et une seule ligne. Je ne veux pas dire echo print_r($cart_result, TRUE)

2
stckvrw

La solution la plus simple est:

foreach($cart_result['items'] as $result) {
    echo $result['id'];
    echo $result['name'];
}
0
stckvrw

Ok, j'en ai quelques-unes avec ce qui suit qui, espérons-le, fonctionnera pour vous.

Donc, premièrement, vous devez définir la variable de session comme suit:

$cart_result = $session->get('cart');

Ensuite, vous devrez parcourir le tableau renvoyé, comme suit:

$keys = array_keys($cart_result);
$count = count(array_shift(array_values($cart_result)));

for ($i = 0; $i<$count; $i++) 
{
    $results = array();
    foreach ($keys as $key) 
    {
        $results[$key] = $cart_result[$key][$i];
    }

    foreach ($results as $result)
    {
        echo $result['id'];
        echo $result['name'];
    }
}

À partir du vidage que vous fournissez dans votre commentaire, ceci produira les éléments suivants:

1 Laptop
2 Tablet

Mise à jour (le crédit va à @stckvrw)

Pour PHP 5.4+ où des erreurs strictes seront générées, remplacez:

$count = count(array_shift(array_values($cart_result)));

avec:

$tmp = array_values($cart_result);
$count = count(array_shift($tmp));
0
Lodder