php - php 如何将数组分成2的倍数

标签 php arrays multidimensional-array foreach

我试图将一个数组划分为一个多维数组,每个包含的数组中有 2 个“元素”。

到目前为止,我只能将它们划分为指定数量的 block ,但是由于元素的数量是通过 foreach 循环并调用数据库确定的,因此我很难将它们划分为 2 的倍数.

foreach ($_POST as $key)
{
    $data[] = $key;
}

echo '<pre>';
  print_r(partition($data, $i));
echo '</pre>';



function partition(Array $list, $p) 
{
  $listlen = count($list);
  $partlen = floor($listlen / $p);
  $partrem = $listlen % $p;
  $partition = array();
  $mark = 0;

  for($px = 0; $px < $p; $px ++)
  {
    $incr = ($px < $partrem) ? $partlen + 1 : $partlen;
    $partition[$px] = array_slice($list, $mark, $incr);
    $mark += $incr;
  }

  return $partition;
}

期望的输出是这样的......

Array
(
  [0] => Array
  (
     [0] => img.jpg
     [1] => http://google.com
  )
  [1] => Array
  (
     [0] => img.jpg
     [1] => http://google.com
  )
  [2] => Array
  (
     [0] => img.jpg
     [1] => http://google.com
  )
)

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

只需使用 array_chunk函数(-;

示例:

<?php
print_r(array_chunk($data, 2));

关于php - php 如何将数组分成2的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725320/

相关文章:

php - pecl 在生产服务器上安装扩展问题

javascript - 二维数组的嵌套映射 : I need the index of my outer arrays

javascript - 如何将多维数组从 PHP 传递到 Javascript?

c# - 双数组的排序列表

r - R 中的 HDBSCAN 可视化应用文本标签而不是数字

php - 共享主机上的存储问题

php - Ajax 代码无法与 codeigniter、PHP 一起使用。?

Windows IIS 中的 PHP session 警告

c - 数组验证 - 不使用辅助数组

arrays - spark udaf 更新数组类型的元组