数组中的php和字符串

数组中的php和字符串,php,Php,我有以下php数组会话: $_SESSION["test"] = array(1,2,3,4,5,6,7); array_walk_recursive($_SESSION["test"],"prepareArray"); function prepareArray(&$item,$key){ $item = "'" . $item . "'"; } 调试$\u会话[“测试”]输出以下内容: var_dump: array(7) { [0]=> string(3) "'

我有以下php数组会话:

$_SESSION["test"] = array(1,2,3,4,5,6,7);
array_walk_recursive($_SESSION["test"],"prepareArray");

function prepareArray(&$item,$key){
    $item = "'" . $item . "'";
}
调试
$\u会话[“测试”
]输出以下内容:

var_dump: 
array(7) { [0]=> string(3) "'1'" [1]=> string(3) "'2'" [2]=> string(3) "'3'" [3]=> string(3) "'4'" [4]=> string(3) "'5'" [5]=> string(3) "'6'" [6]=> string(3) "'7'" } 

print_r: 
Array ( [0] => '1' [1] => '2' [2] => '3' [3] => '4' [4] => '5' [5] => '6' [6] => '7' ) 

echo: 
Array

echo in_array('3',$_SESSION["test"],true);  //strict set to true (echoes nothing)
echo in_array('3',$_SESSION["test"],false); //strict set to false (echoes nothing)

我不明白为什么会这样。有什么想法吗?

prepareArray
函数正在更改您的值,您应该搜索“3”而不是“3”,尝试以下操作:

echo in_array("'3'",$_SESSION["test"],true);
echo in_array("'3'",$_SESSION["test"],false);

-1:坏掉的测试用例,没有显示问题。并为两者生成
true
。@LightnessRacesinOrbit ok,现在已更新,很抱歉给您带来麻烦@0LLiena:您的代码使数组元素类似于
'1'
'2'
等,但显然您一直希望能够找到数组元素
1
2
等。您似乎对作为字符串中的字符的
'
和作为字符串文本分隔符的
'
之间的区别感到困惑。