0

Here's the issue:

I retrieve the following data string from my database:

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

After 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
    }
}

How can I make $exceptions[] loop through all keys from the exploded array so it evaluates if ==$i?

Thanks for helping.

4
  • possible duplicate of Find Value in Array Commented May 8, 2011 at 5:34
  • not sure about that - here i am in need of a solution not to find a specific key, but to loop through all keys Commented May 8, 2011 at 5:37
  • 1
    I'm not sure I got your question, so I'm posting a comment: if I got it, it should suffice to substitute "if($exceptions[] == $i)" with "if(in_array($i,$exceptions))". Commented May 8, 2011 at 5:50
  • @paolo, that's an elegant solution and works nicely - would you mind posting it as answer? - thanks Commented May 8, 2011 at 5:55

3 Answers 3

2

It should suffice to substitute:

if($exceptions[] == $i)

with:

if(in_array($i,$exceptions))

By the way, it eliminates the need for a nested loop.

1

Ah, should be straightforward, no?

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

    foreach($exceptions as $j){
    if($j == $i){
        // do something
        break;
    }
}
}
1
  • Glad to help: in_array is more elegant. No reason not to use the platform functions if they are available and fit the task. Commented May 8, 2011 at 5:58
0

I think I understand what you are asking. Here's how you would test within that loop whether the key equals $i.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.