根据条件将数组分离为多维数组

时间:2014-01-21 09:52:20

标签: php arrays foreach

我有一个来自csv的数组,我需要解析数据。数据如下:

Array
1. PO|115207534
2. OD|115207534
3. PO|115207535
4. OD|115207535
5. OD|115207536

我需要将它分成子阵列,每个子行的第一个条目是PO行。可以有任意数量的OD线,但总是只有1个PO。新数组需要如下:

Array
1.
PO|115207534
OD|115207534
2.
PO|115207535
OD|115207535
OD|115207536

仅使用一个foreach循环最有效的是什么?并使用2个foreach循环?

1 个答案:

答案 0 :(得分:1)

您可以尝试将导入的项目拆分为分块数组的数量“PO”

<?php
$array = array("PO", "OD", "PO", "OD", "OD", "OD", "OD", "PO", "OD", "PO", "OD", "OD");
$result = array();
$index = -1;
foreach ($array as $value) {
    if ($value == "PO") {
        $index++;
    }
    $result[$index][] = $value;
}
?>
<pre>
    <?php
    print_r($result);
    ?>    
</pre>

输出: http://codepad.org/aXpK43Uw