Итак, я использую API и использую текстовые файлы для хранения данных. При попытке прочитать содержимое этих файлов в цикле foreach иногда это не работает. Вот код, с которым я работаю:
$allCampaigns = listCampaigns();
$userCampaings = campaignsForUser($_SESSION['usertoken']);
$allCampaigns = array_diff($allCampaigns, $userCampaings);
$joinedCampaigns = array();
$otherCampaigns = array();
foreach($userCampaings as $value)
{
$info = campaignInfo($value);
$joinedCampaigns[] = $info;
}
foreach($allCampaigns as $key =>$value)
{
echo " $key => $value <br />";
$info = campaignInfo($value);
if($info['joinable'] != 0)
$otherCampaigns[] = $info;
else
continue;
}
foreach($userCampaigns as $value)
отлично работает, он перебирает все элементы. Когда я попадаю в foreach($allCampaigns as $key =>$value)
, он повторяется только один раз, независимо от того, сколько элементов в $allCampaigns
. echo " $key => $value <br />";
печатается только один раз.
Функция CampainInfo:
function campaignInfo($campaign)
{
$file_name = "data/campaigns/$campaign.txt";
$fp = file_get_contents($file_name) or die ("Could not open $file_name");
$arr = json_decode($fp);
return $arr;
}
Строка «Не удалось открыть $ file_name» никогда не печатается. Данные во всех этих файлах идентичны, и я могу открыть их все в текстовом редакторе.
Идеи
Редактировать: Нет ошибок или предупреждений, период. кажется, что он не работает на if($info['joinable'] != 0)
, но присоединяемый ключ всегда равен 0 или 1 .... ???