2014-02-28 102 views
0

我一直在尝试将一个数组拆分为两个组,当前我的数组看起来像这样。分裂阵列PHP

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

试试这个,

$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$rejected阵列外foreach

+0

由于IM如此血腥的愚蠢! – Brent

2

您反复重新创建阵列。将$rejected = array()$nonrejected = array()设置为之前foreach循环。

1

呦创建在每次迭代的阵列到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']); 
    } 
}