Kijken of id in multidimensional array zit

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sem Bakker

Sem Bakker

04/06/2020 12:32:40
Quote Anchor link
Hallo,

Ik ben tegen een probleem aangelopen. Ik heb namelijk een multidimensional array om al mijn producten in te zetten. Het kan er als volgt uit zien:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$_SESSION['products'] = array(
                           array('id' => '1', 'quantity' => 1)
                           array('id' => '2', 'quantity' => 6)
                           array('id' => '3', 'quantity' => 4)
                        );


Maar ik wil nu kijken of er bijvoorbeeld in deze array het product 3 zit. En zo ja dan laat ik een melding ziet dat het product er al in zit. Zo nee dan doe ik een array_push() :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
array_push($_SESSION['products'], array('id' => '3', 'quantity' => $quantity));





Kan iemand mij helpen?


groetjes,

Sem
 
PHP hulp

PHP hulp

24/11/2024 17:15:32
 
Jorn Reed

Jorn Reed

04/06/2020 13:23:55
Quote Anchor link
Ik lees toevallig dat het het niet werkt met multidimensionale arrays:

https://stackoverflow.com/questions/4128323/in-array-and-multidimensional-array

Toevallig vond ik dit wel een simpele loop om de value te checken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
function whatever($array, $key, $val) {
    foreach ($array as $item)
        if (isset($item[$key]) && $item[$key] == $val)
            return true;
    return false;
}



Toevoeging op 04/06/2020 13:33:20:

Je zou dan eventueeel een else statement kunnen maken in de function die dan de waarde die je wilt er in gooit. Met array_push
Gewijzigd op 04/06/2020 13:29:34 door Jorn Reed
 
Thomas van den Heuvel

Thomas van den Heuvel

04/06/2020 16:29:32
Quote Anchor link
Of nog een veel simpelere manier: sla het product id redundant op.

Nu is $_SESSION['products'] gewoon een emmer die je vult, maar een product id is uniek, dus die kun je prima als key gebruiken.

Wat let je om zoiets te doen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$_SESSION
['products'][5] = array(
    'id' => 5,
    'quantity' => 3,
);

?>

Je kunt dan rechtstreeks met array_key_exists() of isset() checken of een product (id) reeds aanwezig is in $_SESSION['products'].

Oftewel: maak slimmer gebruik van je array-keys.
Gewijzigd op 04/06/2020 16:32:18 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.