例如,我有这个 json 文件,其中我有一些表元数据供我的用户使用。
{
"id": {
"index": ["primary", "auto_increment"],
"unsigned": true,
"type": "integer"
},
"nick": {
"index": ["unique"],
"type": "varchar",
"minLength": 4,
"maxLength": 10
},
"pw": {
"type": "varchar",
"minLength": 4,
"maxLength": 10
}
}
我检查一个字段是否是索引以及它是什么类型的索引。
如果我在 foreach 中以这种方式进行检查
if (isset($value["index"]) && (in_array("primary", $value["index"]) || in_array("unique", $value["index"]))) {
$arr[] = $key;
}
正如预期的那样,我得到了这个结果
Array
(
[0] => id
[1] => nick
)
但如果我在 foreach 中这样做
if (in_array("index", $value) && (in_array("primary", $value["index"]) || in_array("unique", $value["index"]))) {
$arr[] = $key;
}
我得到这个结果...
Array
(
[0] => id
)
这有点令人毛骨悚然。有谁知道为什么?我不明白。在我看来,*in_array-sample* 必须与isset-sample一样