用于排列数组顺序的函数

时间:2015-07-31 07:26:33

标签: php arrays

按照列应该出现的顺序提供值数组。 (即输入中的第二个值应显示在第一个下面的网页中) 任务:对数组重新排序,使得值按照它们在html中输出的顺序排列 (即输出中第一行的数据为第一行)

示例输入:

$input = array('A', 'B', 'C', 'D', 'E', 'F', 'G'), 
$cols = 2

示例输出:

array(array('A', 'E'), array('B','F'),...)

我们如何在php中创建一个函数

2 个答案:

答案 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))

Here's an example

答案 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]);
    }
}