Kijken of id in multidimensional array zit
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)
1
2
3
4
5
2
3
4
5
$_SESSION['products'] = array(
array('id' => '1', 'quantity' => 1)
array('id' => '2', 'quantity' => 6)
array('id' => '3', 'quantity' => 4)
);
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() :
Kan iemand mij helpen?
groetjes,
Sem
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)
1
2
3
4
5
6
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;
}
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
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?
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