PHP explode - running loop through each array item

Вот проблема:

I retrieve the following data string from my database:

$row->exceptions = '1,2,3';

После explode I need the below code to check each one of the exploded pieces

$exceptions = explode(",", $row->exceptions);

//result is 
//[0] => 1
//[1] => 2
//[2] => 3

for ($i = 0; $i <= $row->frequency; $i++) {

    if ($exceptions[] == $i) {

        continue;

    } else {

        //do something else
    }
}

Как я могу сделать $exceptions[] loop through all keys from the exploded array so it evaluates if ==$i?

Спасибо за помощь.

3 ответа

Решение

Достаточно заменить:

if($exceptions[] == $i)

с:

if(in_array($i,$exceptions))

Кстати, это устраняет необходимость во вложенном цикле.

Ах, должно быть просто, нет?

$exceptions = explode(",", $row->exceptions);
for ($i = 0; $i <= $row->frequency; $i++) {

    foreach($exceptions as $j){
    if($j == $i){
        // do something
        break;
    }
}
}

Я думаю, я понимаю, что вы спрашиваете. Вот как вы можете проверить в этом цикле, равен ли ключ $i,

for ($i = 0; $i <= $row->frequency; $i++)
{
  foreach ($exceptions as $key => $value)
  {
    if ($key == $i)
    {
      continue;
    }
  }
}
Другие вопросы по тегам