【问题标题】:Splitting arrays based on key sequence in php根据php中的键序列拆分数组
【发布时间】:2016-11-23 11:23:21
【问题描述】:

我有一些代码用于根据键序列将 1 个数组拆分为多个数组。我希望将 1 个数组拆分为多个数组,就像下面的代码一样。

这是数组,

$weekday_array = array(
 1 => 'Monday',
 2 => 'Tuesday',
 3 => 'Wednesday',
 5 => 'Friday',
 6 => 'Saturday'
 );

我想要这样的输出,

$arr1 = array(
 1 => 'Monday'
 2 => 'Tuesday'
 3 => 'Wednesday'
);
$arr2 = array(
 5 => 'Friday',
 6 => 'Saturday'
)

【问题讨论】:

标签: php


【解决方案1】:

使用 array_slice 和第四个参数 true 或 array_chunk 和第三个参数 true,根据您的要求

<?php
$weekdays = [
 1 => 'Monday',
 2 => 'Tuesday',
 3 => 'Wednesday',
 5 => 'Friday',
 6 => 'Saturday'
];

$weekdays_groups = array_chunk($weekdays, 3, true);

var_dump($weekdays_groups[0], $weekdays_groups[1]);

【讨论】:

  • 不知道为什么有人反对这个答案:D
  • 它不是很详细.. 我很高兴你编辑了它虽然赞成。
【解决方案2】:

进行拆分需要什么规则?以下代码仅适用于您的示例。您可能需要根据您需要的规则更改代码。

<?php
$weekday_array = array(
 1 => 'Monday',
 2 => 'Tuesday',
 3 => 'Wednesday',
 5 => 'Friday',
 6 => 'Saturday'
 );

$new_array=array_chunk($weekday_array,3);

$arr1=$new_array[0];
$arr2=$new_array[1];
?>

【讨论】:

    【解决方案3】:
    $result=array(array());
    for ($weekdays as $w)
    {
        if ($a=='Wednesday')
             $result[]=array();
        $result[count($result)-1][]=$a;
    }
    

    ($a=='Wednesday') 应替换为您的拆分标准

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多