按照列应该出现的顺序提供值数组。 (即输入中的第二个值应显示在第一个下面的网页中) 任务:对数组重新排序,使得值按照它们在html中输出的顺序排列 (即输出中第一行的数据为第一行)
示例输入:
$input = array('A', 'B', 'C', 'D', 'E', 'F', 'G'),
$cols = 2
示例输出:
array(array('A', 'E'), array('B','F'),...)
我们如何在php中创建一个函数
答案 0 :(得分:1)
使用array_chunk()
将阵列分解为$cols
:
$chunks = array_chunk($array, ceil(count($array) / $cols));
哪会给你:
array(array('A', 'B', 'C', 'D'), array('E', 'F', 'G'));
然后组合键匹配的每个数组的值。
array_unshift($chunks, null);
$chunks = call_user_func_array('array_map', $chunks);
// array(array('A', 'E'), array('B', 'F'), array('C', 'G'), array('D', NULL))
答案 1 :(得分:0)
您需要计算偏移量,然后迭代数组:
$input = array('A', 'B', 'C', 'D', 'E', 'F', 'G');
$cols = 2;
$itemsCount = count($input);
$offset = ceil($itemsCount/$cols);
$result = array();
for($i = 0; $i < $itemsCount; ++$i) {
if (isset($input[$i]) && isset($input[$i + $offset])) {
$result[] = array($input[$i], $input[$i + $offset]);
}
}