ฉันรู้ว่านี่เป็นโพสต์เก่า แต่ฉันมีปัญหาเช่น 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);