как расположить массивы в php? - PullRequest
0 голосов
/ 02 ноября 2011

у меня такая ситуация:

foreach ($test as $keys => $val) {    
print_r($val); echo '<br>';
}

Array ( [NAME] => John [ps_date] => 20111031 [amount] => 119.94 ) 
Array ( [NAME] => John [ps_date] => 20111031 [amount] => 119.94 ) 
Array ( [NAME] => John [ps_date] => 20111031 [amount] => 69.90 ) 
Array ( [NAME] => Doe [ps_date] => 20111031 [amount] => 119.94 ) 
Array ( [NAME] => Doe [ps_date] => 20111101 [amount] => 69.90 ) 
Array ( [NAME] => Doe [ps_date] => 20111031 [amount] => 199.50 )

я хочу организовать их так:

Array ( [NAME] => John  
             array([ps_date] => 20111031 [amount] => 119.94)
             array([ps_date] => 20111031 [amount] => 119.94)
             array([ps_date] => 20111031 [amount] => 69.90 ) 
Array ( [NAME] => Doe
            array([ps_date] => 20111031 [amount] => 119.94)
            array([ps_date] => 20111101 [amount] => 69.90)
            array([ps_date] => 20111031 [amount] => 199.50 )

есть идеи?

спасибо

Ответы [ 3 ]

0 голосов
/ 02 ноября 2011
$arranged = array();
foreach ($test as $val) {
    $arranged[$val['NAME']][] = array_diff_key($val, array('NAME' => null));
    $arranged[$val['NAME']]  += array_intersect_key($val, array('NAME' => null));
}
0 голосов
/ 02 ноября 2011
$result = array();
foreach ($values as $item) {
  $result[$item['NAME']][] = array('ps_date' => $item['ps_date'], 'amount' => $item['amount'];
}
0 голосов
/ 02 ноября 2011
function arrange_array($array) {
    $result = Array();
    foreach($array as $values) {
        $name = $values['NAME'];
        unset($values['NAME']);
        if(!is_array($result[$name])) $result[$name] = Array();                
        $result[$name][] = $values;
    }
    return $result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...