【问题标题】:split a single array based on specific inner array value根据特定的内部数组值拆分单个数组
【发布时间】:2019-08-14 04:15:33
【问题描述】:
$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:”将单个数组拆分为多个 计算所有“城市:”并将数组从第一个“城市”拆分为下一个“城市”和下一个......

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

[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
                        )


我不知道如何分割这个

【问题讨论】:

  • 你能给这个数组以json格式吗?所以我们可以尝试一下
  • 此问题缺少任何代码来向我们表明您已尝试自己解决此问题。如果您尝试过某些东西,请向我们展示您尝试过的内容、预期输出的示例以及您实际得到的结果。如果您没有尝试过任何事情,则需要在发布之前这样做。我们可以为您的现有代码提供帮助,但我们不会为您编写。请阅读:How to create a Minimal, Complete, and Verifiable exampleHow do I ask a good question?

标签: php jquery html arrays columnsorting


【解决方案1】:

这应该适合你:

<?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);

【讨论】:

  • 看起来不错,但在您的代码中包含更多解释。 OP 应该明白你在代码中做了什么。
  • 谢谢@Andreas,下次我会添加更多的cmets来解释它。为了提供更多详细信息,这里有一个简短的解释:代码获取您的数据集,遍历它,检查何时找到“CITY:”并创建一个新数组(拆分数组),当下一个“CITY:”是到达代码确定一个新段开始,因此创建一个新的拆分数组,将最后一个添加到结果数据集中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 2021-01-27
  • 2011-06-15
相关资源
最近更新 更多