Php 分割数组

Php 分割数组,php,arrays,array-push,Php,Arrays,Array Push,我一直在尝试将一个数组分为两组,目前我的数组如下所示 Array ( [cities] => Array ( [0] => Array ( [id] => 0 [storename] => test [notes] => test

我一直在尝试将一个数组分为两组,目前我的数组如下所示

Array
(
    [cities] => Array
        (
            [0] => Array
                (
                    [id] => 0
                    [storename] => test
                    [notes] => test
                    [rejected] => off
                    [offer] => 
                    [time] => 1393585744241
                )

            [1] => Array
                (
                    [id] => 1
                    [storename] => test2
                    [notes] => test2
                    [rejected] => on
                    [offer] => test2
                    [time] => 1393585751264
                )

        )
)

PHP

foreach( $array['cities'] as $data)
{
    if($data['rejected'] == "off"){

        $rejected = array();

        array_push($rejected, $data['id'], $data['storename'], $data['offer']);


    }

    if($data['rejected'] == "on"){

        $nonerejected = array();

        array_push($nonerejected, $data['id'], $data['storename'], $data['offer']);


    }


}

知道我哪里出错了吗

您正在重复地重新创建阵列。将
$rejected=array()
$NOREJECTED=array()
移动到
foreach
循环之前。

您正在重复地重新创建数组。将
$rejected=array()
$NOREJECTED=array()
移动到
foreach
循环之前。

试试这个

$nonerejected = array();
$rejected = array();
foreach( $array['cities'] as $data)
{
    if($data['rejected'] == "off"){
        array_push($rejected, $data['id'], $data['storename'], $data['offer']);
    }

    if($data['rejected'] == "on"){
        array_push($nonerejected, $data['id'], $data['storename'], $data['offer']);
    }
}
您应该在
foreach
循环之外声明
$nonerejected
$rejected
数组

$nonerejected = array();
$rejected = array();
foreach( $array['cities'] as $data)
{
    if($data['rejected'] == "off"){
        array_push($rejected, $data['id'], $data['storename'], $data['offer']);
    }

    if($data['rejected'] == "on"){
        array_push($nonerejected, $data['id'], $data['storename'], $data['offer']);
    }
}

您应该在
foreach
循环之外声明
$nonerejected
$rejected
数组
foreach
循环的每次迭代中创建数组。您必须在循环外部创建
$rejected
$nonerejected
,然后再执行以下操作:

$nonerejected = array();
$rejected = array();
foreach( $array['cities'] as $data)
{
    if($data['rejected'] == "off"){        

        array_push($rejected, $data['id'], $data['storename'], $data['offer']);
    }

    if($data['rejected'] == "on"){        

        array_push($nonerejected, $data['id'], $data['storename'], $data['offer']);
    }
}

您正在为
foreach
循环的每次迭代创建数组。您必须在循环外部创建
$rejected
$nonerejected
,然后再执行以下操作:

$nonerejected = array();
$rejected = array();
foreach( $array['cities'] as $data)
{
    if($data['rejected'] == "off"){        

        array_push($rejected, $data['id'], $data['storename'], $data['offer']);
    }

    if($data['rejected'] == "on"){        

        array_push($nonerejected, $data['id'], $data['storename'], $data['offer']);
    }
}