无法在PHP中创建多维数组
我有一个名为无法在PHP中创建多维数组,php,arrays,Php,Arrays,我有一个名为$workers的工人数组,还有名为$jobs的工作。让他们每天为每项工作做$jobs\。现在我需要为这些日常工作创建一个数组。这是我的密码: $all_workers=array("worker1","worker2","worker3","worker4", ... ... ); $all_jobs=array("j1","j2","j3", .... .... ); $jobs_for_each=7; $k=0; $day=0; for ($n=0; $n < 3; $n
$workers
的工人数组,还有名为$jobs
的工作。让他们每天为每项工作做$jobs\。现在我需要为这些日常工作创建一个数组。这是我的密码:
$all_workers=array("worker1","worker2","worker3","worker4", ... ... );
$all_jobs=array("j1","j2","j3", .... .... );
$jobs_for_each=7;
$k=0;
$day=0;
for ($n=0; $n < 3; $n++)
{
for ($j=0; $j < count($all_workers) ; $j++)
{
for ($i=0; $i < $jobs_for_each; $i++)
{
$job_arr[$day][trim($all_workers[$j])][]=trim($all_jobs[($k*$jobs_for_each)+$i]);
$distributed_arr[]=trim($all_jobs[($k*$jobs_for_each)+$i]);
}
$k++;
}
$remaining=array_diff ( $all_jobs , $distributed_arr );
unset($all_jobs);
$all_jobs = $remaining;
if (empty($all_jobs))
{
$n=5;
}
else
{
$n=0;
array_values($all_jobs);
}
$k=0;
$day++;
}
$all_workers=数组(“worker1”、“worker2”、“worker3”、“worker4”和“…”);
$all_作业=数组(“j1”、“j2”、“j3”和“…”);
$jobs\u每个=7个;
$k=0;
$day=0;
对于($n=0;$n<3;$n++)
{
对于($j=0;$j
此代码不起作用。我需要$job\u arr[day][worker]=数组(作业)格式的$job\u arr
代码>
如果我的员工是4
且工作是100
每天的fir工作是7
然后它应该需要4天,一些工人不应该在最后一天得到工作
谢谢。我在第二部分做了一些修改并添加了isset:
<?php
$all_workers=array("worker1","worker2","worker3","worker4");
$count_workers = count($all_workers);
$all_jobs=array("j1","j2","j3","j4","j5","j6","j7","j8","j9","j10");
$jobs_for_each=2;
$k=0;
$day=0;
for ($n=0; $n < 3; $n++)
{
for ($j=0; $j < $count_workers ; $j++)
{
for ($i=0; $i < $jobs_for_each; $i++)
{
if(!isset($job_arr[$day])){
$job_arr[$day]=array();
}
$job_left = count($all_jobs);
if( $job_left <= $jobs_for_each*$count_workers){
$jobs_for_each = ceil($job_left / $count_workers);
}
if(!isset($all_jobs[($k*$jobs_for_each)+$i])){
echo 'no more job<br />';break(3);
}else{
$job_arr[$day][trim($all_workers[$j])][]=trim($all_jobs[($k*$jobs_for_each)+$i]);
$distributed_arr[]=trim($all_jobs[($k*$jobs_for_each)+$i]);
}
}
$k++;
}
$remaining=array_diff ( $all_jobs , $distributed_arr );
if (empty($remaining))
{
break;
}
else
{
$all_jobs = array_values($remaining);
}
$k=0;
$day++;
}
?>
在尝试设置之前,您没有将$job\u arr
初始化为数组,也没有将其任何元素初始化为数组。$job\u arr
应该自动初始化。@Matt SL您不必在php中初始化变量。您必须定义$job\u arr[$day],启用通知:通知:未定义的偏移:3@MarcinOrlowski我不知道这适用于数组或多维数组!谢谢你的更正。
no more job
array (size=2)
0 =>
array (size=4)
'worker1' =>
array (size=2)
0 => string 'j1' (length=2)
1 => string 'j2' (length=2)
'worker2' =>
array (size=2)
0 => string 'j3' (length=2)
1 => string 'j4' (length=2)
'worker3' =>
array (size=2)
0 => string 'j5' (length=2)
1 => string 'j6' (length=2)
'worker4' =>
array (size=2)
0 => string 'j7' (length=2)
1 => string 'j8' (length=2)
1 =>
array (size=1)
'worker1' =>
array (size=2)
0 => string 'j9' (length=2)
1 => string 'j10' (length=3)