Я знаю, что это старый пост, но у меня была проблема, такая как OP, и это то, что я придумал.
Пример массива, который вы можете передать. Вы можете повторно заказать это, если требуется конкретный заказ, но в этом вопросе это будет делать то, что вам задают.
$argument_set = array (8 => 'lots', 5 => 'of', 1 => 'data', 2 => 'here');
Это управляемо, легко читается, а точки извлечения данных могут быть добавлены и удалены в любой момент в любом месте кодирования и при этом избежать масштабной перезаписи. Я использовал целочисленные ключи, чтобы соответствовать исходному вопросу OP, но строковые ключи можно было использовать так же легко. Собственно для читабельности я бы посоветовал это.
Вставьте это во внешний файл для удобства
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;
}
поместите это в начало, если файл.
$argument_set = array();
Просто используйте их, чтобы назначить следующий фрагмент данных, используя нумерацию / именование в соответствии с тем, откуда поступают данные.
$argument_set[1][] = $some_variable;
И наконец передаем массив
unknown_number_arguments($argument_set);