Проблема с обработкой массива

Nubcoder32

Доброго времени суток уважаемые форумчане, Возникла проблема с обработкой массива, уже голову сломал.

Есть массив вида

Код (Text):
  1. [1352] =>
  2. (
  3. )
  4.  
  5.  
  6. [1356] =>
  7. (
  8.     [id] => 1356
  9.     [attr_group_id] => 162
  10.     [name] => 8 Years
  11.     [bb_id] => 1356
  12. )
  13.  
  14. [1358] =>
  15. (
  16.     [id] => 1358
  17.     [attr_group_id] => 100
  18.     [name] => RED
  19.     [bb_id] => 1358
  20. )
  21.  
  22.  
  23. [1368] =>
  24. (
  25.     [id] => 1368
  26.     [attr_group_id] => 100
  27.     [name] => GREEN
  28.     [bb_id] => 1368
  29. )
  30.  
  31. [1363] =>
  32. (
  33.     [id] => 1363
  34.     [attr_group_id] => 100
  35.     [name] => SILVER
  36.     [bb_id] => 1363
  37. )

Нужно получить

Код (Text):
  1.    [СЮДА attr_group_id] =>
  2.    (
  3.        // внутрь все, что имеет этот attr_group_id
  4.    [0] =>(
  5.        [id] => 1352
  6.        [name] => 10 Years
  7.        [bb_id] => 1352
  8.        )
  9.    [1] =>(
  10.        [id] => 1352
  11.        [name] => 10 Years
  12.        [bb_id] => 1352
  13.    )
  14.  
  15.  
  16.  
  17.  
  18.    … и т.д
  19.  
  20.    )
 

Drunkenmunky

PHP:
  1. <?php
  2.  
  3. $array = array(
  4.  
  5. ‘1356’ =>
  6.   array(
  7.       ‘id’ => ‘1356’,
  8.       ‘attr_group_id’ => ‘162’,
  9.       ‘name’ => ‘8 Years’,
  10.       ‘bb_id’ => ‘1356’
  11.   ),
  12.  
  13. ‘1358’ =>
  14.   array(
  15.       ‘id’ => ‘1358’,
  16.       ‘attr_group_id’ => ‘100’,
  17.       ‘name’ => ‘RED’,
  18.       ‘bb_id’ => ‘1358’
  19.   ),
  20.  
  21. ‘1348’ =>
  22.   array(
  23.       ‘id’ => ‘1348’,
  24.       ‘name’ => ‘YELLOW’,
  25.       ‘bb_id’ => ‘1348’
  26.   ),
  27.  
  28. ‘1368’ =>
  29.   array(
  30.       ‘id’ => ‘1368’,
  31.       ‘attr_group_id’ => ‘100’,
  32.       ‘name’ => ‘GREEN’,
  33.       ‘bb_id’ => ‘1368’
  34.   )
  35.  
  36. );
  37.  
  38. $new_array = array();
  39.  
  40. $nkeys = array(‘id’, ‘name’, ‘bb_id’);
  41. $item = array();
  42.  
  43. foreach($array as $arr)
  44. {
  45. $group_key = isset($arr[‘attr_group_id’]) ?
  46. $arr[‘attr_group_id’] : ‘without group’;
  47.  
  48.   foreach($arr as $k => $v)
  49.   {
  50.    if(in_array($k, $nkeys)) $item[$k] = $v;
  51.   }
  52.  
  53. $new_array[$group_key][] = $item;
  54. $item = array();
  55. }
  56.  
  57. echo ‘<pre>’;
  58. print_r($new_array);
  59. ?>
 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *