【发布时间】:2018-08-03 04:55:01
【问题描述】:
奇怪的 PHP in_array 问题让我感到困惑。不是 PHP 专家,但我有点筋疲力尽,似乎无法理解我可能出错的语法或属性。
这就是我想要做的:
- 获取 CSV 文件,将其转为关联数组
- 在数组中查找代码。这是我从简单的表单提交中获得的动态变量。
- 如果代码存在则发送“消息”响应,否则发送“错误”响应
根据我的理解,下面的代码应该可以工作,但奇怪的是,当我添加“else”时,响应总是返回“错误”(例如,它永远不会进入 if,或者它每次都被重置迭代到错误)。
如果我删除 for 循环中的“else”条件,它会按预期工作,但我需要捕获错误。也试过严格比较,没有骰子!
感谢任何帮助!再次感谢您。
$csv = array_map('str_getcsv', file($file,FILE_SKIP_EMPTY_LINES));
$keys = array_shift($csv);
foreach ($csv as $i=>$row) {
$csv[$i] = array_combine($keys, $row);
}
for ($j=0; $j<count($csv); $j++) {
if (in_array($code, $csv[$j])) {
$output = json_encode(array('type'=>'message', 'text' => 'Found'));
die($output);
}
else {
$output = json_encode(array('type'=>'error', 'text' => 'Not Found'));
die($output);
}
}
【问题讨论】:
-
您在
in_array()中引用了$code,但它是在哪里创建的? -
$code的值在哪里? -
$code的值是多少?