拆分数组PHP

时间:2014-02-28 11:31:42

标签: php arrays array-push

我一直在尝试将数组拆分为两组,目前我的数组看起来像这样。

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']);


    }


}

我出错的任何想法?

3 个答案:

答案 0 :(得分:3)

试试这个,

$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']);
    }
}

您应该在$nonerejected循环之外声明$rejectedforeach数组

答案 1 :(得分:2)

您反复重新创建阵列。在 $rejected = array()循环之前,将$nonrejected = array()foreach移至

答案 2 :(得分:1)

Yo正在每次迭代中创建数组到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']);
    }
}