没有indexOfOutBounds的shift数组

时间:2011-04-06 13:32:24

标签: php arrays

我有两个长度相同的数组。数组$gPositionStudents和数组$gPositionInternships。每个学生被分配到不同的实习,那部分工作。

现在我希望$gPositionStudent的第一个元素(索引0)引用数组$gPositionInternship的第二个(索引1)元素。这隐含地意味着$gPositionStudents的最后一个元素引用$gPositionInternship的第一个元素。 (我附上了我的解释图片)。

enter image description here

我的代码是:

// 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中存在什么?

2 个答案:

答案 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 =>值对的数组。