PHP Explode - выполнение цикла через каждый элемент массива - PullRequest
0 голосов
/ 08 мая 2011

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

Я получаю следующую строку данных из моей базы данных:

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

После explode мне нужен код ниже, чтобы проверить каждую из взорванных частей

$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[] цикл по всем ключам из разобранного массива, чтобы он оценил, если ==$i?

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

Ответы [ 3 ]

2 голосов
/ 08 мая 2011

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

if($exceptions[] == $i)

с:

if(in_array($i,$exceptions))

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

1 голос
/ 08 мая 2011

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

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

    foreach($exceptions as $j){
    if($j == $i){
        // do something
        break;
    }
}
}
0 голосов
/ 08 мая 2011

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

for ($i = 0; $i <= $row->frequency; $i++)
{
  foreach ($exceptions as $key => $value)
  {
    if ($key == $i)
    {
      continue;
    }
  }
}
...