第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

通過(guò)附加要求擴(kuò)展陣列

通過(guò)附加要求擴(kuò)展陣列

PHP
繁星coding 2023-09-15 17:04:54
我是 PHP 新手,但我會(huì)盡力而為。請(qǐng)耐心等待我。:)昨天我已經(jīng)問(wèn)過(guò)類(lèi)似的問(wèn)題,但今天我必須擴(kuò)展它。初始情況在我的學(xué)校,畢業(yè)生必須在最后一年選擇論文主題。每個(gè)學(xué)生從一個(gè)學(xué)科領(lǐng)域選擇一位導(dǎo)師來(lái)幫助他們。起始位置每個(gè)學(xué)生必須準(zhǔn)確指定三個(gè)愿望,并按偏好降序排列。示例:史黛西在設(shè)計(jì)上選擇喬布斯先生作為她的第一愿望,卡爾也選擇喬布斯先生作為他的第一愿望,但在可用性方面。威廉選擇計(jì)算機(jī)科學(xué)專(zhuān)業(yè)的蓋茨先生作為他的第一選擇,夏洛特選擇生物學(xué)專(zhuān)業(yè)的蓋茨先生作為他的第一選擇。每個(gè)導(dǎo)師最多可以指導(dǎo)三名學(xué)生。每位教師最多可以選擇兩個(gè)科目。因此,可以在設(shè)計(jì)和可用性方面選擇喬布斯先生,在計(jì)算機(jī)科學(xué)和生物學(xué)方面選擇蓋茨先生,在物理和地理學(xué)方面選擇馬斯克先生??赡艿倪x舉示例:Mr. Jobs -> Stacy (Design), Carl (Usability), Melody (Design) Mr. Gates -> William (Computer Science), Eric (Biology), Charlott (Biology) Mr. Musk -> Anthony (Physics), Sarah (Physics), Nelly (Geography)最后的問(wèn)題我怎樣才能確保盡可能多的學(xué)生實(shí)現(xiàn)他們的第一個(gè)愿望?剩下的學(xué)生中,盡可能多地實(shí)現(xiàn)第二個(gè)愿望,其余的實(shí)現(xiàn)第三個(gè)愿望。(完成了嗎?有什么建議嗎?)我如何擴(kuò)展以下腳本,以便考慮同事的不同科目,但沒(méi)有人監(jiān)督超過(guò) 3 個(gè)學(xué)生?我怎樣才能告訴腳本也輸出分配的是第一個(gè)愿望、第二個(gè)愿望還是第三個(gè)愿望?用戶Rustyjim昨天幫助我編寫(xiě)了以下腳本。再次感謝!祝您身體健康!到目前為止的腳本function shuffle_assoc($list) {    if (!is_array($list)) return $list;    $keys = array_keys($list);    shuffle($keys);    $random = array();    foreach ($keys as $key) {        $random[$key] = $list[$key];    }    return $random;}$preferencesOfStudents = [    'students' => [        'Stacy' => ['Mr Jobs','Mr Gates','Mr Musk'],        'Carl' => ['Mr Jobs','Mr Gates','Mr Musk'],        'Melody' => ['Mr Jobs','Mr Musk','Mr Gates'],        'William' => ['Mr Musk','Mr Gates','Mr Jobs'],        'Eric' => ['Mr Gates','Mr Jobs','Mr Musk'],        'Charlott' => ['Mr Jobs','Mr Gates','Mr Musk'],        'Anthony' => ['Mr Gates','Mr Musk','Mr Jobs'],        'Sarah' => ['Mr Gates','Mr Jobs','Mr Musk'],        'Nelly' => ['Mr Gates','Mr Musk','Mr Jobs']    ]];// 1 = Jobs, 2 = Gates, 3 = Musk$teachers = [    'Mr Jobs' => [],    'Mr Gates' => [],    'Mr Musk' => []];$randomStudentsArray = shuffle_assoc($preferencesOfStudents['students']);//print_r($randomStudentsArray);foreach($randomStudentsArray as $name => $student){    if(count($teachers[$student[0]]) < 3){        $teachers[$student[0]][] = $name;    } elseif(count($teachers[$student[1]]) < 3) {        $teachers[$student[1]][] = $name;    } else {        $teachers[$student[2]][] = $name;    }}print_r($teachers);
查看完整描述

1 回答

?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊

編輯:這有效嗎?希望能有所幫助!


如果最多有 2 個(gè)專(zhuān)業(yè),則會(huì)出現(xiàn)一個(gè)問(wèn)題:有時(shí)并非所有學(xué)生都可以分配。


但它會(huì)盡可能地嘗試,而且是隨機(jī)的,所以如果它沒(méi)有給出好的輸出,就再試一次。


   <?php

function shuffle_assoc($list) {

    if (!is_array($list)) return $list;

    $keys = array_keys($list);

    shuffle($keys);

    $random = array();

    foreach ($keys as $key) {

        $random[$key] = $list[$key];

    }

    return $random;

}

function searchForId($id, $array) {

    foreach ($array as $key => $val) {

        if ($val['specializations'] === $id) {

            return $key;

        }

    }

    return null;

 }

$preferencesOfStudents = [

    'students' => [

        'Stacy' => ['Mr Jobs','Mr Gates','Mr Musk', 'Biology'],

        'Carl' => ['Mr Jobs','Mr Gates','Mr Musk', 'Design'],

        'Melody' => ['Mr Bezos','Mr Musk','Mr Gates', 'Usability'],

        'William' => ['Mr Musk','Mr Gates','Mr Jobs', 'Computer Science'],

        'Eric' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics'],

        'Charlott' => ['Mr Jobs','Mr Gates','Mr Musk', 'Geography'],

        'Anthony' => ['Mr Gates','Mr Musk','Mr Jobs', 'Geography'],

        'Sarah' => ['Mr Gates','Mr Jobs','Mr Musk', 'Design'],

        'Nelly' => ['Mr Gates','Mr Musk','Mr Jobs', 'Usability'],

        'Connor' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics'],

        'Frodo' => ['Mr Gates','Mr Musk','Mr Jobs', 'Computer Science'],

        'Achmed' => ['Mr Gates','Mr Jobs','Mr Musk', 'Computer Science']

    ]

];


$teachers = [

    'Mr Jobs' => [

        'students' => [],

        'specializations' => []

    ],

    'Mr Gates' => [

        'students' => [],

        'specializations' => []

    ],

    'Mr Musk' => [

        'students' => [],

        'specializations' => []

    ],

    'Mr Bezos' => [

        'students' => [],

        'specializations' => []

    ]

];

$unassigned = [];

$randomStudentsArray = shuffle_assoc($preferencesOfStudents['students']);

/*assign students to prefered spots randomly*/

foreach($randomStudentsArray as $name => $student){

    foreach ($teachers as $teacherName => $array) {

        if (in_array($student[3],$array['specializations'])) {

            $teachers[$teacherName]['students'][] = $name." (because of specialization) (".$student[3].")";

            $teachers[$teacherName]['specializations'][] = $student[3];

            break;

        }

    }

    if(count($teachers[$student[0]]['students']) < 5 && count($teachers[$student[0]]['specializations']) < 2){   

        $teachers[$student[0]]['students'][] = $name." (first choice) (".$student[3].")";

        $teachers[$student[0]]['specializations'][] = $student[3]; 

    } elseif(count($teachers[$student[1]]['students']) < 5 && count($teachers[$student[1]]['specializations']) < 2) {

        $teachers[$student[1]]['students'][] = $name." (second choice) (".$student[3].")";

        $teachers[$student[1]]['specializations'][] = $student[3];

    } elseif(count($teachers[$student[2]]['students']) < 5 && count($teachers[$student[2]]['specializations']) < 2)  {

        $teachers[$student[2]]['students'][] = $name." (third choice) (".$student[3].")";

        $teachers[$student[2]]['specializations'][] = $student[3];

    } else {

        $unassigned[$name] = $student;

    }

}

/*assign unassigned student to free spots*/

foreach($unassigned as $name => $student){

    foreach($teachers as $teacherName => $listOfStudents){

        if(count($listOfStudents['students']) < 5 && count($listOfStudents['specializations']) < 2){

            $teachers[$teacherName]['students'][] = $name." (none of prefered choices) (".$student[3].")";

            $teachers[$teacherName]['specializations'][] = $student[3];

        }

    }

}

print_r($teachers);

編輯2:


<?php

function shuffle_assoc($list) {

    if (!is_array($list)) return $list;

    $keys = array_keys($list);

    shuffle($keys);

    $random = array();

    foreach ($keys as $key) {

        $random[$key] = $list[$key];

    }

    return $random;

}

function searchForId($id, $array) {

    foreach ($array as $key => $val) {

        if ($val['specializations'] === $id) {

            return $key;

        }

    }

    return null;

 }

$preferencesOfStudents = [

    'students' => [

        'Stacy' => ['Mr Jobs','Mr Gates','Mr Musk', 'Biology'],

        'Carl' => ['Mr Jobs','Mr Gates','Mr Musk', 'Design'],

        'Melody' => ['Mr Bezos','Mr Musk','Mr Gates', 'Usability'],

        'William' => ['Mr Musk','Mr Gates','Mr Jobs', 'Computer Science'],

        'Eric' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics'],

        'Charlott' => ['Mr Jobs','Mr Gates','Mr Musk', 'Geography'],

        'Anthony' => ['Mr Gates','Mr Musk','Mr Jobs', 'Geography'],

        'Sarah' => ['Mr Gates','Mr Jobs','Mr Musk', 'Design'],

        'Nelly' => ['Mr Gates','Mr Musk','Mr Jobs', 'Usability'],

        'Connor' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics'],

        'Frodo' => ['Mr Gates','Mr Musk','Mr Jobs', 'Computer Science'],

        'Achmed' => ['Mr Gates','Mr Jobs','Mr Musk', 'Computer Science']

    ]

];


$teachers = [

    'Mr Jobs' => [

        'students' => [],

        'specializations' => ['Biology', 'Design']

    ],

    'Mr Gates' => [

        'students' => [],

        'specializations' => ['Computer Science', 'Usability']

    ],

    'Mr Musk' => [

        'students' => [],

        'specializations' => ['Physics', 'Geography']

    ],

    'Mr Bezos' => [

        'students' => [],

        'specializations' => ['Usability', 'Biology']

    ]

];

$unassigned = [];

$randomStudentsArray = shuffle_assoc($preferencesOfStudents['students']);

/*assign students to prefered spots randomly*/

foreach($randomStudentsArray as $name => $student){

    if(count($teachers[$student[0]]['students']) < 5 && in_array($student[3],$teachers[$student[0]]['specializations'])){   

        $teachers[$student[0]]['students'][] = $name." (first choice) (".$student[3].")";

    } elseif(count($teachers[$student[1]]['students']) < 5 && in_array($student[3],$teachers[$student[1]]['specializations'])) {

        $teachers[$student[1]]['students'][] = $name." (second choice) (".$student[3].")";

    } elseif(count($teachers[$student[2]]['students']) < 5 && in_array($student[3],$teachers[$student[2]]['specializations']))  {

        $teachers[$student[2]]['students'][] = $name." (third choice) (".$student[3].")";

    } else {

        $unassigned[$name] = $student;

    }

}

/*assign unassigned student to free spots*/

foreach($unassigned as $name => $student){

    foreach($teachers as $teacherName => $listOfStudents){

        if(count($listOfStudents['students']) < 5 && count($listOfStudents['specializations']) < 2 && in_array($student[3],$teachers[$teacherName]['specializations'])){

            $teachers[$teacherName]['students'][] = $name." (none of prefered choices) (".$student[3].")";

        }

    }

}

print_r($teachers);

編輯3:


<?php

function shuffle_assoc($list) {

    if (!is_array($list)) return $list;

    $keys = array_keys($list);

    shuffle($keys);

    $random = array();

    foreach ($keys as $key) {

        $random[$key] = $list[$key];

    }

    return $random;

}

function searchForId($id, $array) {

    foreach ($array as $key => $val) {

        if ($val['specializations'] === $id) {

            return $key;

        }

    }

    return null;

 }

$preferencesOfStudents = [

    'students' => [

        'Stacy' => ['Mr Jobs','Mr Gates','Mr Musk', 'Biology', 'Usability'],

        'Carl' => ['Mr Jobs','Mr Gates','Mr Musk', 'Design', 'Physics'],

        'Melody' => ['Mr Bezos','Mr Musk','Mr Gates', 'Usability', 'Physics'],

        'William' => ['Mr Musk','Mr Gates','Mr Jobs', 'Computer Science', 'Usability'],

        'Eric' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics', 'Design'],

        'Charlott' => ['Mr Bezos','Mr Gates','Mr Musk', 'Geography', 'Design'],

        'Anthony' => ['Mr Gates','Mr Musk','Mr Jobs', 'Geography', 'Computer Science'],

        'Sarah' => ['Mr Bezos','Mr Jobs','Mr Musk', 'Design', 'Physics'],

        'Nelly' => ['Mr Gates','Mr Musk','Mr Jobs', 'Usability', 'Design'],

        'Connor' => ['Mr Gates','Mr Bezos','Mr Musk', 'Physics', 'Usability'],

        'Frodo' => ['Mr Gates','Mr Musk','Mr Jobs', 'Computer Science', 'Geography'],

        'Achmed' => ['Mr Gates','Mr Jobs','Mr Musk', 'Computer Science', 'Geography'],

        'Charlie' => ['Mr Bezos','Mr Musk','Mr Gates', 'Usability', 'Physics'],

        'India' => ['Mr Musk','Mr Gates','Mr Jobs', 'Computer Science', 'Usability'],

        'Lima' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics', 'Design'],

        'Mike' => ['Mr Jobs','Mr Gates','Mr Musk', 'Geography', 'Design'],

        'Oscar' => ['Mr Gates','Mr Musk','Mr Jobs', 'Usability', 'Computer Science'],

        'Quentin' => ['Mr Gates','Mr Jobs','Mr Musk', 'Design', 'Physics'],

        'Sam' => ['Mr Gates','Mr Musk','Mr Jobs', 'Usability', 'Design'],

        'Victor' => ['Mr Gates','Mr Jobs','Mr Musk', 'Physics', 'Usability'],

        'Zach' => ['Mr Gates','Mr Musk','Mr Jobs', 'Computer Science', 'Geography'],

        'Arya' => ['Mr Gates','Mr Jobs','Mr Musk', 'Computer Science', 'Geography']

    ]

];


$teachers = [

    'Mr Jobs' => [

        'students' => [],

        'specializations' => ['Biology', 'Design']

    ],

    'Mr Gates' => [

        'students' => [],

        'specializations' => ['Computer Science', 'Usability']

    ],

    'Mr Musk' => [

        'students' => [],

        'specializations' => ['Physics', 'Geography']

    ],

    'Mr Bezos' => [

        'students' => [],

        'specializations' => ['Usability', 'Biology']

    ]

];

$unassigned = [];

$randomStudentsArray = shuffle_assoc($preferencesOfStudents['students']);

/*assign students to prefered spots randomly*/

foreach($randomStudentsArray as $name => $student){

    if(count($teachers[$student[0]]['students']) < 5 && (in_array($student[3],$teachers[$student[0]]['specializations']) || in_array($student[3],$teachers[$student[0]]['specializations']))){   

        $teachers[$student[0]]['students'][] = $name." (first choice) (".$student[3].")";

    } elseif(count($teachers[$student[1]]['students']) < 5 && (in_array($student[3],$teachers[$student[1]]['specializations']) || in_array($student[3],$teachers[$student[0]]['specializations']))) {

        $teachers[$student[1]]['students'][] = $name." (second choice) (".$student[3].")";

    } elseif(count($teachers[$student[2]]['students']) < 5 && (in_array($student[3],$teachers[$student[2]]['specializations']) || in_array($student[3],$teachers[$student[0]]['specializations'])))  {

        $teachers[$student[2]]['students'][] = $name." (third choice) (".$student[3].")";

    } else {

        $unassigned[$name] = $student;

    }

}

/*assign unassigned student to free spots*/

foreach($unassigned as $name => $student){

    foreach($teachers as $teacherName => $listOfStudents){

        if(count($listOfStudents['students']) < 5 && count($listOfStudents['specializations']) < 2 && ( in_array($student[3],$teachers[$teacherName]['specializations']) || in_array($student[4],$teachers[$teacherName]['specializations']) )){

            $teachers[$teacherName]['students'][] = $name." (none of prefered choices) (".$student[3].")";

        }

    }

}

print_r($teachers);



查看完整回答
反對(duì) 回復(fù) 2023-09-15
  • 1 回答
  • 0 關(guān)注
  • 132 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)