So che questo è un vecchio post, ma stavo avendo un problema come l'OP e questo è ciò che mi è venuto in mente.
Esempio di array che potresti passare. Puoi riordinarlo se è richiesto un ordine particolare, ma per questa domanda questo farà ciò che viene richiesto.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Questo è gestibile, facile da leggere e i punti di estrazione dei dati possono essere aggiunti e rimossi in un momento in qualsiasi punto della codifica ed evitare comunque una massiccia riscrittura. Ho usato i tasti interi per coincidere con la domanda originale dell'OP, ma i tasti stringa potevano essere usati altrettanto facilmente. Infatti per leggibilità lo consiglierei.
Inseriscilo in un file esterno per facilità
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;
}
mettilo all'inizio se il file.
$argument_set = array();
Basta usarli per assegnare la numerazione / denominazione al pezzo successivo di dati in base alla provenienza dei dati.
$argument_set[1][] = $some_variable;
E infine passa l'array
unknown_number_arguments($argument_set);