fork(2) download
  1. <?php
  2.  
  3. $data = array(
  4. "continent" => "Europa",
  5. "country" => "France",
  6. "capital" => "Paris",
  7. ),
  8. "continent" => "Europa",
  9. "country" => "Spain",
  10. "capital" => "Madrid",
  11. ),
  12. "continent" => "Asia",
  13. "country" => "Russia",
  14. "capital" => "Moscow",
  15. )
  16. );
  17.  
  18.  
  19. $group_by = 'continent';
  20. $attributes = array( 'country', 'capital' );
  21.  
  22. $output = array();
  23. foreach( $data as $country ) {
  24.  
  25. if( isset( $country[$group_by] ) ) {
  26.  
  27. $one = array();
  28. foreach( $attributes as $attribute ) {
  29. if( isset( $country[$attribute] ) ) {
  30. $one[$attribute] = $country[$attribute];
  31. }
  32. }
  33. $output[ $country[$group_by] ][] = $one;
  34. }
  35. }
  36.  
  37.  
  38. print_r($output);
  39.  
  40.  
  41. ?>
Success #stdin #stdout 0s 82560KB
stdin
Standard input is empty
stdout
Array
(
    [Europa] => Array
        (
            [0] => Array
                (
                    [country] => France
                    [capital] => Paris
                )

            [1] => Array
                (
                    [country] => Spain
                    [capital] => Madrid
                )

        )

    [Asia] => Array
        (
            [0] => Array
                (
                    [country] => Russia
                    [capital] => Moscow
                )

        )

)