I just cannot think of the code. I have waay too many if statments which I want to change to be a switch statement, but I cannot find of the logic.
At the moment I have:
if(strstr($var,'texttosearch'))
   echo 'string contains texttosearch';
if(strstr($var,'texttosearch1'))
   echo 'string contains texttosearch1';
if(strstr($var,'texttosearch2'))
   echo 'string contains texttosearc2h';
//etc etc...
But how can I achieve the same within a switch?
switch (true) {
  case strstr($var,'texttosearch'):
    echo 'string contains texttosearch';
    break;
  case strstr($var,'texttosearch1'):
    echo 'string contains texttosearch1';
    break;
  case strstr($var,'texttosearch2'):
    echo 'string contains texttosearc2h';
    break;
}
Note, that this is slightly different to your own solution, because the switch-statement will not test against the other cases, if an earlier already matches, but because you use separate ifs, instead if if-else your way always tests against every case.
I think you can't achieve this with switch (more elegant than now) because it compare values but you want compare only part of values. Instead you may use loop:
$patterns = array('texttosearch', 'texttosearch1', 'texttosearch2');
foreach ($patterns as $pattern) {
    if (strstr($var, $pattern)) {
        echo "String contains '$pattern'\n";
    }
}
                        You can do it the other way around:
switch(true) {
case strstr($var, "texttosearch"):
    // do stuff
    break;
case strstr($var, "texttosearch1"):
    // do other stuff
    break;
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With