Php 根据数组的特定字段将给定数组拆分为新数组

Php 根据数组的特定字段将给定数组拆分为新数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有这样的阵列 $arrr = [ 95 => ['title' => 'CONTACT US', 'break' => '1', 'id' => 95], 100 => ['title' => 'CUSTOMER SERVICE', 'break' => '1', 'id' => 100], 105 => ['title' => 'SHOPPING TOOLS', 'break' => '0', 'id

我有这样的阵列

$arrr = [
    95 => ['title' => 'CONTACT US', 'break' => '1', 'id' => 95],
    100 => ['title' => 'CUSTOMER SERVICE', 'break' => '1', 'id' => 100], 
    105 => ['title' => 'SHOPPING TOOLS', 'break' => '0', 'id' => 105], 
    126 => ['title' => 'COMPANY INFO1', 'break' => '0', 'id' => 126], 
    108 => ['title' => 'COMPANY INFO', 'break' => '1', 'id' => 108], 
    111 => ['title' => 'CONNECT WITH US', 'break' => '0', 'id' => 111], 
    114 => ['title' => 'OUR OTHER SITES', 'break' => '1', 'id' => 114], 
];
现在我想要这样的数组

$arrr = [
    0 => ['title' => 'CONTACT US', 'break' => '1', 'id' => 95],
    1 => ['title' => 'CUSTOMER SERVICE', 'break' => '1', 'id' => 100], 
    2 => [
        0 => ['title' => 'SHOPPING TOOLS', 'break' => '0', 'id' => 105],
        1 => ['title' => 'COMPANY INFO1', 'break' => '0', 'id' => 126],
        2 => ['title' => 'COMPANY INFO', 'break' => '1', 'id' => 108], 
    ],
    3 => [
        0 => ['title' => 'CONNECT WITH US', 'break' => '0', 'id' => 111], 
        1 => ['title' => 'OUR OTHER SITES', 'break' => '1', 'id' => 114]
    ]
];

给定具有字段“break”的数组。根据此字段“break”,必须按结果数组所示拆分数组


请分享解决方案。提前感谢。

给你第一个数组的答案

<?php
    $arrr = array(
        95 => array('title' => 'CONTACT US', 'break' => '1', 'id' => 95),
        100 => array('title' => 'CUSTOMER SERVICE', 'break' => '1', 'id' => 100), 
        105 => array('title' => 'SHOPPING TOOLS', 'break' => '0', 'id' => 105), 
        126 => array('title' => 'COMPANY INFO1', 'break' => '0', 'id' => 126), 
        108 => array('title' => 'COMPANY INFO', 'break' => '1', 'id' => 108), 
        111 => array('title' => 'CONNECT WITH US', 'break' => '0', 'id' => 111), 
        114 => array('title' => 'OUR OTHER SITES', 'break' => '1', 'id' => 114), 
    );
    $new_array = array();$i=0;
    foreach($arrr as  $row){
        if($row['break']==1){ if(!isset($new_array[$i]))$new_array[$i] = $row;else $new_array[$i][]=$row;$i++;}
        else $new_array[$i][] = $row;
    }
    echo "<pre>";print_r($new_array);
?>

人们怎么可能知道
126
108
应该属于
105
,而
100
不应该属于
95
?没有任何东西可以指示数组应该如何分组。我猜你是想在
break
上拆分,但在105中你似乎同时拥有
0
1
。请更新您的问题,以清楚地说明应如何拆分数组,以及如何确定。到目前为止,您尝试了什么,我还看到break=0和1的组合,这不是很有趣吗?具有断点1的元素将是另一个数组中的单独元素,具有断点0的数组将是该单独数组中具有下一个元素的另一个数组,如果下一个元素再次具有break 0,那么它应该位于该单独的数组中,直到下一个元素具有break=1。我已经尝试了这个解决方案$结果=[]$i=0;foreach($arrras$key=>$value){$result[$i][]=$value;if($value['break']==1){$i++;}}}echo'//打印(结果);
<?php
    $arrr = array(
        95 => array('title' => 'CONTACT US', 'break' => '1', 'id' => 95),
        100 => array('title' => 'CUSTOMER SERVICE', 'break' => '1', 'id' => 100), 
        105 => array('title' => 'SHOPPING TOOLS', 'break' => '0', 'id' => 105), 
        126 => array('title' => 'COMPANY INFO1', 'break' => '0', 'id' => 126), 
        108 => array('title' => 'COMPANY INFO', 'break' => '1', 'id' => 108), 
        111 => array('title' => 'CONNECT WITH US', 'break' => '0', 'id' => 111), 
        114 => array('title' => 'OUR OTHER SITES', 'break' => '1', 'id' => 114), 
    );
    $new_array = array();$i=0;
    foreach($arrr as  $row){
        if($row['break']==1){ if(!isset($new_array[$i]))$new_array[$i] = $row;else $new_array[$i][]=$row;$i++;}
        else $new_array[$i][] = $row;
    }
    echo "<pre>";print_r($new_array);
?>
    Array(
        [0] => Array([title] => CONTACT US, [break] => 1, [id] => 95),
        [1] => Array([title] => CUSTOMER SERVICE, [break] => 1, [id] => 100),
        [2] => Array(
            [0] => Array([title] => SHOPPING TOOLS, [break] => 0, [id] => 105),
            [1] => Array([title] => COMPANY INFO1, [break] => 0, [id] => 126),
            [2] => Array([title] => COMPANY INFO, [break] => 1, [id] => 108),
        )
        [3] => Array(
            [0] => Array([title] => CONNECT WITH US, [break] => 0, [id] => 111)
            [1] => Array([title] => OUR OTHER SITES, [break] => 1, [id] => 114)
        )
    )