首页 > 解决方案 > 根据检查元素的结果拆分数组

问题描述

我在 PHP 中有一个数组,如下所示:

`

Array (
    [0] => Array
        (
            [0] => Some text
            [1] => 6230.C3
        )
    [1] => Array
        (
            [0] => Some text
            [1] => 6230.C3
        )
    [2] => Array
        (
            [0] => 
            [1] => 
        )
    [3] => Array
        (
            [0] => Some text
            [1] => 
        )
    [4] => Array
        (
            [0] => Some text
            [1] => 
        )
    [5] => Array
        (
            [0] => Some text
            [1] => 
        )
    [6] => Array
        (
            [0] => 
            [1] => 
        )
    [7] => Array
        (
            [0] => Some text
            [1] => 
        )
    [8] => Array
        (
            [0] => Some text
            [1] => 
        )
)

`

Array[2] 和 Array[6] 是空数组。请帮我将我的数组拆分为三个数组array1、array2、array3,如下所示(在 Array[2] 和 Array[6] 的位置拆分)。

array1 = [ Array[0], Array[1] ]
array2 = [ Array[3], Array[4], Array[5] ]
Aarray3 = [ Array[7], Array[8] ]

谢谢您的帮助。

标签: phparrays

解决方案


这比您的原始问题更灵活一些,因为它不限于将 3 个数组作为单独的变量。以下结果将是一个多维数组,以您想要的方式拆分,但拆分次数不受限制。如果这确实是您输入的内容,我可以在必要时重新修改它以恰好适合 3 个变量。

<?php
$final = array();
$counter = 0;
$outerEmpty = false;
foreach($originalArray as $outer) {
    $innerEmpty = true;
    foreach($outer as $inner) {
        if (!empty($inner)) {
            $innerEmpty = false;
            break;
        }
    }
    if (!$innerEmpty)
        $final[$counter][] = $outer;
    else
        $counter++;
}

推荐阅读