簡體   English   中英

根據值將數組拆分為多個數組 - PHP

[英]Split an array into mutiple arrays based on a value - PHP

到目前為止我嘗試過的:我有一個如下所示的數組,我想要做的是,根據值BEGIN_DAY創建多個數組:

Array
(
    [0] => Array
        (
            [0] => BEGIN_DAY
            [1] => 15
        )

    [1] => Array
        (
            [0] => 20130701
            [1] => 4
            [2] => 4
            [3] => 3060
            [4] => 1
        )

    [2] => Array
        (
            [0] => 20130702
            [1] => 270
            [2] => 757
            [3] => 13812810
            [4] => 4
        )

    [3] => Array
        (
            [0] => 20130703
            [1] => 5
            [2] => 123
            [3] => 3894971
            [4] => 2
        )

    [4] => Array
        (
            [0] => 20130704
            [1] => 290
            [2] => 478
            [3] => 5119617
            [4] => 1
        )
    [5] => Array
        (
            [0] => END_DAY
            [1] => 15
        )
    [6] => Array
        (
            [0] => BEGIN_DAY
            [1] => 16
        )
     [7] => Array
        (
            [0] => 20130704
            [1] => 290
            [2] => 478
            [3] => 5119617
            [4] => 1
        )

等等...我想把這個數組分成多個不同的數組,當它從BEGIN_DAY開始時所以它應該是這樣的:第一個:

 Array
(
    [0] => Array
        (
            [0] => BEGIN_DAY
            [1] => 15
        )

    [1] => Array
        (
            [0] => 20130701
            [1] => 4
            [2] => 4
            [3] => 3060
            [4] => 1
        )

    [2] => Array
        (
            [0] => 20130702
            [1] => 270
            [2] => 757
            [3] => 13812810
            [4] => 4
        )

    [3] => Array
        (
            [0] => 20130703
            [1] => 5
            [2] => 123
            [3] => 3894971
            [4] => 2
        )

    [4] => Array
        (
            [0] => 20130704
            [1] => 290
            [2] => 478
            [3] => 5119617
            [4] => 1
        )
    [5] => Array
        (
            [0] => END_DAY
            [1] => 15
        )

第二 :

    [0] => Array
        (
            [0] => BEGIN_DAY
            [1] => 16
        )
    [1] => Array
        (
            [0] => 20130704
            [1] => 290
            [2] => 478
            [3] => 5119617
            [4] => 1
        )

到目前為止我嘗試過的:

$days=array();
$split_by='BEGIN_DAY';
foreach ($day_all as $key => $value) {
    if($day_all[$key][0]==$split_by){
         $days=array_slice($day_all, 0,$split_by);
  }
}
 var_dump($days);

非常感激!

$sk = "first";
foreach ($array as $key=>$value)
{
    if(in_array(BEGIN_DAY, $value)&&$key!=0)
    {
        $sk = "second";
    }
    $result[$sk][] = $value;
}
echo "<pre>";
print_r($result);
$first = $result['first'];
$second = $result['second'];

像這樣的東西:

$yourArray = ...; //is your array as described above
$finalArray = [];
$tempArray = [];
for($idx = 0; idx<$yourArray .length; idx++){
  $tempArray = $yourArray[$idx]

  if($yourArray[$idx][0] == 'BEGIN_DAY'){
    $finalArray[] = $tempArray;
    $tempArray = [];
  }
}

最后一個數組將包含數組。 每次找到BEGIN_DAY ,數組都將插入到finalArray中,並創建一個新數組。 要改進代碼,也要檢查單元格是否存在,以避免索引異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM