我正在尝试在没有运气的数组中是否存在Vin号。这是我的数组结构-
$vin[] = array($data);
Array ( [0] => Array ( [0] => 1C6RR7FG2JS178810 ) [1] => Array ( [0] => 1C6RR7FG2JS178810 ) [2] => Array ( [0] => 1C6RR7FG2JS178810 ) [3] => Array ( [0] => 1C6RR7FG2JS178810 )
以及使用in_array检查数组的方法-
if (in_array("1C6RR7FG2JS178810", $vin)){
echo "found";
}else{
echo "not found";
}
但是即使我知道它确实存在,也没有每次都找不到它。我要去哪里错了?
答案 0 :(得分:2)
请注意,您的数组元素是具有1个元素的数组。您可以使用array_column提取它们。考虑:
if (in_array("1C6RR7FG2JS178810", array_column($vin, "0"))){
echo "found";
} else {
echo "not found";
}
我怀疑您没有正确添加数据。请注意,使用$vin[] = array($data);
会将数据添加到按数组包装的$vin
元素中-我想您应该只执行$vin[] = $data;
(这可能会循环执行...
答案 1 :(得分:1)
您在数组中附加变量的类型将第二个数组附加到数组中的0键并创建多维数组。
$array[] = ['someX'];
if (in_array('someX', $array[0])){
echo "yes";
}
在此示例中,someX变量位于0键上,因此数组将如下所示:
Array
(
[0] => Array
(
[0] => someX
)
)
如果您决定使用多维数组,请查看以下链接: in_array() and multidimensional array
if(array_search('1C6RR7FG2JS178810', array_column($vin, "0")) !== false) {
echo 'value is in multidim array';
}
else {
echo 'value is not in multidim array';
}