当我的数组只包含一个值时,它不会被识别为数组

In my code, I fill an array using this line in a loop :

 $_SESSION['my_array'][] = $some_value;

After each execution of this line, I do some check (doesn't matter here for which purpose) using the function in_array(). However, at the first iteration it says :

« in_array() expects parameter 2 to be array ».

How to fix this problem?

You can initialize the array (before you fill it with values) like this:

$_SESSION['my_array']=array();

This way you can be sure that it is array, even when it would be empty.

You are assigning or accesing it wrongly

Use this

$_SESSION['my_array'] = $some_value;

When you are doing the in_array check, you can cast the second item to an array, so if it's empty then it will pass an empty array. This way you don't ever set anything to the session when you don't need to (which could trip you up later on)

e.g.,

if (in_array('foo', (array)$_SESSION['my_array'])) {
  // do something
}