Sé que esta es una publicación antigua, pero estaba teniendo un problema como el OP y esto es lo que se me ocurrió.
Ejemplo de matriz que podría pasar. Puede volver a pedir esto si se requiere un pedido en particular, pero para esta pregunta, esto hará lo que se le pide.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Esto es manejable, fácil de leer y los puntos de extracción de datos se pueden agregar y eliminar en cualquier momento en cualquier lugar de la codificación y aún así evitar una reescritura masiva. Usé claves enteras para coincidir con la pregunta original de OP, pero las claves de cadena se podrían usar con la misma facilidad. De hecho, por legibilidad, lo recomendaría.
Pegue esto en un archivo externo para mayor facilidad
function unknown_number_arguments($argument_set) {
foreach ($argument_set as $key => $value) {
# create a switch with all the cases you need. as you loop the array
# keys only your submitted $keys values will be found with the switch.
switch ($key) {
case 1:
# do stuff with $value
break;
case 2:
# do stuff with $value;
break;
case 3:
# key 3 omitted, this wont execute
break;
case 5:
# do stuff with $value;
break;
case 8:
# do stuff with $value;
break;
default:
# no match from the array, do error logging?
break;
}
}
return;
}
ponga esto al principio si el archivo.
$argument_set = array();
Solo utilícelos para asignar el siguiente fragmento de uso de datos / numeración de acuerdo con el lugar de donde provienen los datos.
$argument_set[1][] = $some_variable;
Y finalmente pasa la matriz
unknown_number_arguments($argument_set);