我有两个长度相同的数组。数组$gPositionStudents
和数组$gPositionInternships
。每个学生被分配到不同的实习,那部分工作。
现在我希望$gPositionStudent
的第一个元素(索引0)引用数组$gPositionInternship
的第二个(索引1)元素。这隐含地意味着$gPositionStudents
的最后一个元素引用$gPositionInternship
的第一个元素。 (我附上了我的解释图片)。
我的代码是:
// Make table
$header = array();
$header[] = array('data' => 'UGentID');
$header[] = array('data' => 'Internships');
// this big array will contains all rows
// global variables.
global $gStartPositionStudents;
global $gStartPositionInternships;
//var_dump($gStartPositionInternships);
$rows = array();
$i = 0;
foreach($gStartPositionStudents as $value) {
foreach($gStartPositionInternships as $value2) {
// each loop will add a row here.
$row = array();
// build the row
$row[] = array('data' => $value[0]['value']);
//if($value[0] != 0 || $value[0] == 0) {
$row[] = array('data' => $gStartPositionInternships[$i]);
}
$i++;
// add the row to the "big row data (contains all rows)
$rows[] = array('data' => $row);
}
$output = theme('table', $header, $rows);
return $output;
现在我希望我可以选择多少次,我们可以转移。 1班或2班或2班。我希望在PHP中存在什么?
答案 0 :(得分:2)
这样的事情:
//get the array keys for the interns and students...
$intern_keys = array_keys($gStartPositionInternships);
$student_keys = array_keys($gStartPositionStudents);
//drop the last intern key off the end and pin it to the front.
array_unshift($intern_keys, array_pop($intern_keys));
//create a mapping array to join the two arrays together.
$student_to_intern_mapping = array();
foreach($student_keys as $key=>$value) {
$student_to_intern_mapping[$value] = $intern_keys[$key];
}
您需要对其进行修改以适应其余代码,但希望这将展示您可以使用的技术。请注意,此处的关键字是使用array_unshift()
array_pop()
的关键字。代码中的注释应该解释它正在做什么。
答案 1 :(得分:1)
我认为你想做array_slice($gPositionsStudents, 0, X)
,其中X是要移动的移动次数。这片多个数组元素。然后执行array_merge($gPositionsStudents, $arrayOfSlicedOfPositions);
将这些附加到原始数组的末尾。
然后你可以做一个array_combine来创建一个带有来自两个数组的key =>值对的数组。