首页 > 解决方案 > PHP in_array() 总是返回 false

问题描述

我正在尝试检查一个值是否在数组中,但它总是返回 false。我已经尝试了很多不同的方法来解决这个问题,但都没有奏效。

我有这个文件,我用来require_once '../path/';将它添加到我当前的脚本中。它是一个转换为 PHP 嵌套数组的 JSON。

这是始终返回的函数false。我用数组做了很多测试echo,一切看起来都很好。$states_json$cities

如果有人可以帮助我解决这种情况,我将不胜感激。

编辑:我正在调用这个函数,validateInstCity("RS", "Porto Alegre")所以它应该返回true。经过更多测试,我发现问题出$states_jsonNULL函数内部。奇怪的是我之前在其他函数中使用它没有任何问题。正如您在文件中看到的那样,使用validateInstCity("RS", "Porto Alegre")$idx 时应该是22并且函数应该返回true

function validateInstCity($inst_province = null, $inst_city = null) {
  if (empty($inst_province) ||
      empty($inst_city)) {
  }

  $idx;
  for ($i=0; $i < count($states_json); $i++) {
    if ($states_json[$i]['sigla'] == $inst_province) {
      $idx = $i;
      break;
    }
  }

  $cities= array();
  for ($i=0; $i < count($states_json[$idx]['cidades']); $i++) {
    array_push($cities, $states_json[$idx]['cidades'][$i]);
  }

  if (in_array($inst_city, $cities, false)) {
    return true;
  } else {
    return false;
  }
}

标签: php

解决方案


推荐阅读