数组中的php和字符串
我有以下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) "'
$_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
等。您似乎对作为字符串中的字符的'
和作为字符串文本分隔符的'
之间的区别感到困惑。