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

时间:2013-04-22 11:00:46

标签: php arrays

在我的代码中,我在循环中使用这一行填充数组:

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

每次执行此行后,我会使用function in_array()进行一些检查(此处无关紧要)。但是,在第一次迭代中它说:

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

如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

您可以初始化数组(在填充值之前),如下所示:

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

这样你可以确定它是数组,即使它是空的。

答案 1 :(得分:0)

您正在错误地分配和访问

使用此

$_SESSION['my_array'] = $some_value;

答案 2 :(得分:0)

当你进行in_array检查时,可以将第二个项目转换为数组,所以如果它是空的,那么它将传递一个空数组。这样你就不会在你不需要的时候为会话设置任何东西(这可能会让你以后绊倒)

如,

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