fork(1) download
  1. <?php
  2. $variations_excerpt =
  3. array ( 4288 => array ( 'pa_farbe' => 'white-default', 'pa_groesse' => 'xl' ) ,
  4. 128 => array ( 'pa_farbe' => 'black-default', 'pa_groesse' => 's' ),
  5. 130 => array ( 'pa_farbe' => 'black-default', 'pa_groesse' => 'xxl' ),
  6. 4289 => array ( 'pa_farbe' => 'white-default', 'pa_groesse' => 'xxl' ),
  7. 127 => array ( 'pa_farbe' => 'black-default', 'pa_groesse' => 'm' ) ,
  8. 129 => array ( 'pa_farbe' => 'black-default', 'pa_groesse' => 'xl' ) ,
  9. 4286 => array ( 'pa_farbe' => '', 'pa_groesse' => ''),
  10. 149 => array ( 'pa_farbe' => 'black-default', 'pa_groesse' => 'l' ),
  11. 4287 => array ( 'pa_farbe' => 'white-default', 'pa_groesse' => 's' ),
  12. 126 => array ( 'pa_farbe' => 'black-default', 'pa_groesse' => 'l' ),
  13. 4290 => array ( 'pa_farbe' => 'white-default', 'pa_groesse' => '' )
  14. );
  15.  
  16. $dummy = $variations_excerpt;
  17.  
  18. $unique_attribute_values =
  19. 'pa_farbe' => array (
  20. 0 => 'black-default',
  21. 1 => 'white-default',
  22. 2 => ''
  23. ),
  24. 'pa_groesse' => array (
  25. 5 => 's',
  26. 6 => 'm',
  27. 7 => 'l',
  28. 8 => 'xl',
  29. 9 => 'xxl',
  30. 10 => ''
  31. )
  32. );
  33. $dim_names = array('pa_farbe', 'pa_groesse');
  34. uksort($variations_excerpt, "cmp");
  35.  
  36. function cmp($a, $b) {
  37. global $dim_names, $unique_attribute_values, $dummy;
  38. foreach($dim_names as $d) {
  39. $x = array_search($dummy[$a][$d], $unique_attribute_values[$d]);
  40. $y = array_search($dummy[$b][$d], $unique_attribute_values[$d]);
  41. if ($x < $y) {
  42. return -1;
  43. } else if ($x > $y) {
  44. return 1;
  45. }
  46. }
  47. if ($a < $b)
  48. return -1;
  49. else
  50. return 1;
  51. }
  52.  
  53. print_r($variations_excerpt);
  54.  
  55. ?>
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
Array
(
    [128] => Array
        (
            [pa_farbe] => black-default
            [pa_groesse] => s
        )

    [127] => Array
        (
            [pa_farbe] => black-default
            [pa_groesse] => m
        )

    [126] => Array
        (
            [pa_farbe] => black-default
            [pa_groesse] => l
        )

    [149] => Array
        (
            [pa_farbe] => black-default
            [pa_groesse] => l
        )

    [129] => Array
        (
            [pa_farbe] => black-default
            [pa_groesse] => xl
        )

    [130] => Array
        (
            [pa_farbe] => black-default
            [pa_groesse] => xxl
        )

    [4287] => Array
        (
            [pa_farbe] => white-default
            [pa_groesse] => s
        )

    [4288] => Array
        (
            [pa_farbe] => white-default
            [pa_groesse] => xl
        )

    [4289] => Array
        (
            [pa_farbe] => white-default
            [pa_groesse] => xxl
        )

    [4290] => Array
        (
            [pa_farbe] => white-default
            [pa_groesse] => 
        )

    [4286] => Array
        (
            [pa_farbe] => 
            [pa_groesse] => 
        )

)