PHP: Multidimensionales Array – Kleidergrößen sortieren per PHP

Nachfolgend eine Funktion zum Sortieren von Kleidergrößen.

    $attributes = array(
        array('sku'=>'WKK1234_M','value'=>'M'),
        array('sku'=>'WKK1234_4XL','value'=>'4XL'),
        array('sku'=>'WKK1234_L','value'=>'L'),
        array('sku'=>'WKK1234_S','value'=>'S'),
    );
    //sort the option values
    $attributes = $this->sortOptionValues($attributes,'value'); 

    /**
     * Sort the option values alphabetic, with the given key
     *
     *
     * @param array $multiArray
     * @param string $key
     * @return array
     *
     */
    public function sortOptionValues($multiArray,$key) {

        $tmp = Array();
        foreach($multiArray as &$ma) {
            $tmp[] = $this->cmp($ma[$key]);
        }
        array_multisort($tmp, $multiArray);

        return $multiArray;
    }

    /**
     * return the order of dress sizes
     * @param $a
     * @return mixed
     */
    public function cmp($a)
    {
        //ignore numeric values
        if(is_numeric($a)) {
            return $a;
        }

        //default dress size order
        $sizes = array(
            "uni" => 1,
            "2XS" => 2,
            "XS" => 3,
            "S" => 4,
            "M" => 5,
            "L" => 6,
            "XL" => 7,
            "2XL" => 8,
            "XXL" => 8,
            "3XL" => 9,
            "4XL" => 10,
            "5XL" => 11
        );
        return $sizes[$a];
    }
Dieser Beitrag wurde unter PHP veröffentlicht. Setze ein Lesezeichen auf den Permalink.