【问题标题】:Slice an array into 4 other arrays将一个数组切片成 4 个其他数组
【发布时间】:2012-10-04 06:55:06
【问题描述】:

我有一个数组,我想将它分成 4 个其他数组,因为我想在四列上显示第一个数组的内容。

我已经尝试了上面的代码,但我得到的是 N 列有 4 个项目。

$groups = array();
for ($i = 0; $i < count($menu); $i += 4) $groups[] = array_slice($menu, $i, 4);

是否可以对其进行修改以获得正好 4 列并分配值以使其适合?

【问题讨论】:

  • 我不完全明白你在问什么,你能改写一下这个问题吗?
  • 假设我想将一个数组拆分为 4 个其他数组。
  • @Psyche 这样的事情:codepad.viper-7.com/kwqbB6
  • 关于这部分:“......因为我想在四列上显示第一个数组的内容......”。如果你想在网格中显示你的数组,还有更好的方法。

标签: php arrays slice


【解决方案1】:

就像 Michael Berkowski 建议的那样:

$groups = array_chunk($menu,4);

应该给你你需要的东西。如果你更喜欢“体力劳动”

$groups = array();
while($groups[] = array_splice($menu,0,4))
{//no need for any code here ^^ chunks the array just fine
    printf('This loop will run another %d times<br/>',(int)ceil(count($menu)/4));
}

更新:

我知道我有点错了...想要分块成 4 个数组,而不是 4 个数组:

$groups = array_chunk($menu,(int)ceil(count($menu)/4));

【讨论】:

    【解决方案2】:

    你可以试试

    // Some Random array
    $array = range(1, 20);
    
    // Split it 4 Chuncks
    $array = array_chunk($array, 4);
    
    // Slice The first 4 Chunks
    $array = array_slice($array, 0, 4);
    
    // Output Result
    foreach ( $array as $set ) {
        printf("<li>%s</li>", implode(",", $set));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-03
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多