根据特定的内部数组值拆分单个数组

split a single array based on specific inner array value

$data = 
          [1] => Array
                        (
                            [1] => CITY :
                            [3] => CANADA
                        )

                    [8] => Array
                        (
                            [1] => Customer :
                            [4] => CUS1
                        )
                    [9] => Array
                        (
                            [1] => Customer :
                            [4] => CUS2
                        )
                    [10] => Array
                        (
                            [1] => Customer :
                            [4] => CUS3
                        )
                   .............

                    [17] => Array
                        (
                            [1] => CITY :
                            [3] => FLORIDA
                        )

                    [18] => Array
                        (
                            [1] => Customer :
                            [3] => C2
                        )
               )


我正在尝试根据值将数组拆分为不同的数组。这是我的阵列。我需要根据内部值将一个数组拆分为多个 "CITY :" 计算所有 "CITY :" 并将数组从第一个 "CITY" 拆分为下一个 "CITY" 和下一个....

结果: 我想根据下面的值拆分数组

[1] => Array
                        (
                            [1] => CITY :
                            [3] => CANADA
                        )

                    [8] => Array
                        (
                            [1] => Customer :
                            [4] => CUS1
                        )
                    [9] => Array
                        (
                            [1] => Customer :
                            [4] => CUS2
                        )
                    [10] => Array
                        (
                            [1] => Customer :
                            [4] => CUS3
                        )
          )

 [2] => Array
                        (
                            [1] => CITY :
                            [3] => FLORIDA
                        )

                    [18] => Array
                        (
                            [1] => Customer :
                            [3] => C2
                        )


我不知道怎么拆分这个

这应该适合你:

<?php

$data = array(
    array(
        'CITY :',
        'CANADA'
    ),
    array(
        'Customer :',
        'CUS1'
    ),
    array(
        'Customer :',
        'CUS2'
    ),
    array(
        'Customer :',
        'CUS3'
    ),
    array(
        'CITY :',
        'FLORIDA'
    ),
    array(
        'Customer :',
        'C2'
    ),
);

$result = array();
$firstRun = true;
foreach($data as $item) {
    if(array_values($item)[0] == 'CITY :') {
        if(!$firstRun) {
            $result[] = $splittedArray;
        } else {
            $firstRun = false;
        }

        $splittedArray = array();
    }

    $splittedArray[] = $item;
}
// add last array, as it will not pass at the finish through the first logic of the loop
$result[] = $splittedArray;

print_r($result);