Well, the first thing is the break statement would return only the first match and then break. Second, I would think that the case statement should be checking for strings (i.e. "1" and "5", not 1 and 5) since that is how the array is defined. As for using switch statements with an array, I don't know if that is possible. From the PHP.net:
The case expression may be any expression that evaluates to a simple type, that is, integer or floating-point numbers and strings. Arrays or objects cannot be used here unless they are dereferenced to a simple type.
I would think looping through the array and running the switch statement would be the way to go.
<?php
$numbers = array("1","5","7");
function switch_array($arr){
for($i=0;$i<sizeof($arr);$i++){
switch ($arr[$i])
{
case "1":
echo "Number 1";
break;
case "2":
echo "Number 2";
break;
case "3":
echo "Number 3";
break;
case "4":
echo "Number 4";
break;
case "5":
echo "Number 5";
break;
case "6":
echo "Number 6";
break;
case "7":
echo "Number 7";
break;
default:
echo "No Numbers between 1 and 7";
}
}
}
switch_array($numbers); //Outputs Number 1Number 5Number 7
?>
- <?php
- $numbers = array("1","5","7");
- function switch_array($arr){
- for($i=0;$i<sizeof($arr);$i++){
- switch ($arr[$i])
- {
- case "1":
- echo "Number 1";
- break;
-
- case "2":
- echo "Number 2";
- break;
-
- case "3":
- echo "Number 3";
- break;
-
- case "4":
- echo "Number 4";
- break;
-
- case "5":
- echo "Number 5";
- break;
-
- case "6":
- echo "Number 6";
- break;
-
- case "7":
- echo "Number 7";
- break;
-
- default:
- echo "No Numbers between 1 and 7";
- }
- }
- }
- switch_array($numbers); //Outputs Number 1Number 5Number 7
- ?>