Ваша переменная ранга
[ { "ranks":"Director,Asst. Director,Captain,Lieutenant,Chief,Deputy Chief,Dep. Chief" } ]
декодируется как одна строка
"Director,Asst. Director,Captain,Lieutenant,Chief,Deputy Chief,Dep. Chief"
Таким образом, вы должны сначала разделить ее запятой.Например, вы можете сделать это следующим образом:
function ck_rank($rank)
{
$strJsonFileContents = file_get_contents("./includes/globals.json");
// for your json [ { "ranks":"Director,Asst. Director,Captain,Lieutenant,Chief,Deputy Chief,Dep. Chief" } ]
// $ranks variable will contain array:
// [["ranks" => "Director,Asst. Director,Captain,Lieutenant,Chief,Deputy Chief,Dep. Chief"]]
$status = json_decode($strJsonFileContents, true);
$ranks = explode(",", $status[0]['ranks']);
return in_array($rank, $ranks);
}
Обратите внимание, что мы добавляем [0], потому что в вашем json это объект в массиве с полем ranks