2016-11-10 44 views
2

我目前正在设计一个程序,为学生创建修订时间表。我试图创建一个函数,通过一个二维数组,并将主题插入到该数组中的随机位置,即在星期一的第12号槽中的数学运算,然后移动到第二天。我将两个主题分配给每个小时星期设置为前一页的变量我只需要帮助选择主数组中的每个数组。这里是我的2darray,牢记香港专业教育学院只包括第3个阵列,以节省空间甚至尽管有7如何使用foreach将值添加到数组中的每个数组中?

$Timetable = array(
"0" => array  // 0 = Monday 6= Sunday 
        // 0 - 24 = horus 
(
    "0" => "", 
    "1" => "", 
    "2" => "", 
    "3" => "", 
    "4" => "", 
    "5" => "", 
    "6" => "", 
    "7" => "", 
    "8" => "", 
    "9" => "", 
    "10" => "", 
    "11" => "", 
    "12" => "", 
    "13" => "", 
    "14" => "", 
    "15" => "", 
    "16" => "", 
    "17" => "", 
    "18" => "", 
    "19" => "", 
    "20" => "", 
    "21" => "", 
    "22" => "", 
    "23" => "", 
    "24" => "", 
), 
"1" => array 
(
    "0" => "", 
    "1" => "", 
    "2" => "", 
    "3" => "", 
    "4" => "", 
    "5" => "", 
    "6" => "", 
    "7" => "", 
    "8" => "", 
    "9" => "", 
    "10" => "", 
    "11" => "", 
    "12" => "", 
    "13" => "", 
    "14" => "", 
    "15" => "", 
    "16" => "", 
    "17" => "", 
    "18" => "", 
    "19" => "", 
    "20" => "", 
    "21" => "", 
    "22" => "", 
    "23" => "", 
    "24" => "", 
), 
"2" => array 
(
    "0" => "", 
    "1" => "", 
    "2" => "", 
    "3" => "", 
    "4" => "", 
    "5" => "", 
    "6" => "", 
    "7" => "", 
    "8" => "", 
    "9" => "", 
    "10" => "", 
    "11" => "", 
    "12" => "", 
    "13" => "", 
    "14" => "", 
    "15" => "", 
    "16" => "", 
    "17" => "", 
    "18" => "", 
    "19" => "", 
    "20" => "", 
    "21" => "", 
    "22" => "", 
    "23" => "", 
    "24" => "", 
), 
); 

预期的结果,就是如果用户填入值,用户放,例如表已经进入数学4小时英语6和生物2的数组可能看起来像这样。

'$'Timetable = array(
"0" => array  // 0 = Monday 6= Sunday 
        // 0 - 24 = horus 
(
    "0" => "", 
    "1" => "", 
    "2" => "", 
    "3" => "english", 
    "4" => "", 
    "5" => "", 
    "6" => "", 
    "7" => "maths", 
    "8" => "", 
    "9" => "biology", 
    "10" => "", 
    "11" => "english", 
    "12" => "", 
    "13" => "", 
    "14" => "", 
    "15" => "", 
    "16" => "", 
    "17" => "", 
    "18" => "", 
    "19" => "", 
    "20" => "", 
    "21" => "", 
    "22" => "maths", 
    "23" => "", 
    "24" => "", 
), 
"1" => array 
(
    "0" => "", 
    "1" => "", 
    "2" => "", 
    "3" => "", 
    "4" => "", 
    "5" => "", 
    "6" => "", 
    "7" => "", 
    "8" => "", 
    "9" => "english", 
    "10" => "", 
    "11" => "maths", 
    "12" => "", 
    "13" => "", 
    "14" => "", 
    "15" => "", 
    "16" => "english", 
    "17" => "", 
    "18" => "", 
    "19" => "", 
    "20" => "", 
    "21" => "english", 
    "22" => "", 
    "23" => "", 
    "24" => "", 
), 
"2" => array 
(
    "0" => "", 
    "1" => "", 
    "2" => "", 
    "3" => "", 
    "4" => "", 
    "5" => "", 
    "6" => "", 
    "7" => "", 
    "8" => "", 
    "9" => "", 
    "10" => "", 
    "11" => "", 
    "12" => "", 
    "13" => "biology", 
    "14" => "", 
    "15" => "english", 
    "16" => "", 
    "17" => "", 
    "18" => "", 
    "19" => "", 
    "20" => "", 
    "21" => "", 
    "22" => "", 
    "23" => "maths", 
    "24" => "", 
), 
); 
+0

你能提供预期的结果吗?因为它不完全清楚你想在这里实现什么。 – BVengerov

+0

如果您的子阵列从0到24,您是否有24天的25个条目?你不应该放松“24”,或者你有两个“午夜”条目的理由吗? –

+0

@BozidarSikanjic它应该从0-23你是正确的谢谢 –

回答

2

可以为阵列的每个级别和一个随机整数做到这一点:

$first = rand(0,6); 
$second = rand(0,23); 

$string = 'Random Subject'; 

$timetable[$first][$second] = $string; 

取决于你要多少“主题”来添加,你应该创建随机人群的数组,创造条件,从这个数组中选择一个随机字符串另一个随机变量:

$subjects = ['English', 'Maths', 'Biology']; 
$subs = rand(0,count($subjects)); 

$timetable[$first][$second] = $subjects[$subs]; 

,只要你想,你可以重复此操作多次,或把它放在一个函数内,重复上一个for

+1

非常感谢您对此感到抱歉,因为有些宽泛的问题和格式不正确的代码。我会尽力实现这一点,看看我能否得到它的工作。我只需要添加一些错误处理,以便2个主题被放置在同一个时间段,但是一个循环运行,直到所有主题都被放入正确数量的答案中。 –

相关问题