Отображать результаты LOOPED Array Условно на основе значения COUNT - PullRequest
0 голосов
/ 28 марта 2011

Вы можете сослаться на мой код ниже, чтобы получить лучшее представление о том, что я пытаюсь выполнить, но в основном вот что я делаю:

Я создаю онлайн-форму заказа для людей, чтобы заказать алкоголь в винном магазине. У меня есть все ликворные продукты в массиве (Вы найдете этот гигантский многомерный массив в коде).

Проблема, с которой я столкнулся, заключается в том, что когда я отображаю все эти продукты в таблице, это длинная таблица, которая сбивает страницу. Я хочу сделать несколько таблиц рядом, чтобы пользователю не пришлось прокручивать страницу вниз. У меня есть код, который подсчитывает, сколько содержимого в массиве.

Например, на языке psuedocode ...

, если считать

....

И так далее, и тому подобное.

Я хочу, чтобы столы располагались рядом, пока у меня не закончится место, а затем я поставлю их ниже на другую ... в основном я пытаюсь сделать прокрутку вниз как можно меньше.

Мой код прилагается. Это долго, но будет весело выручить меня, пожалуйста, и спасибо!

        $space = " ";
        $product_categories = array ("Vodka", "Flavored_Vodka", "Rum", "Cordials", "Brandy_Cognac", "Gin", 
                "Tequila", "Scotch", "Mixers", "Kegs", "Bourbon");

        $products = array(
            "Vodka" =>
                array ("Absolut Vodka", "Barton Vodka", "Barton Vodka 1.75L", "Belvedere Vodka", "Chopin Vodka", "Ciroc Vodka", 
                "Finlandia Vodka", "Grey Goose Vodka", "Ketal One", "McCormick Vodka", "Nova Vodka", "Skyy Vodka", "Smirnoff Vodka", 
                "Stoli Vodka", "Svedka Vodka", "Three Olives Vodka", "Titos Vodka", "UV Vodka 80", "Viaka Vodka"),
            "Flavored Vodka" =>
                array ("Absolut Apeach", "Absolut Citron", "Absolut Kurant", "Absolut Mandrin", "Absolut Pear", 
                "Absolute Peppar", "Absolut Raspberry", "Absolut Vanilla", "Ciroc Coconut", "Ciroc Red Berry", "Finlandia Wild Berries", 
                "Finlandia Lime", "Firefly Sweet Tea Vodka", "Godiva Chocolate Vodka", "Ketal One Citroen", "McCormick Apple", "McCormick
                Raspberry", "McCormick Vanilla", "Pinnacle Chocolate Whipped", "Pinnacle Cotton Candy", "Pinnacle Strawberry Kiwi", 
                "Pinnacle Whipped Vodka", "Skyy Citrus", "Skyy Passion Fruit", "Smirnoff Citrus", "Smirnoff Green Apple", "Smirnoff Orange",
                "Smirnoff Passion Fruit", "Smirnoff Raspberry", "Smirnoff Strawberry", "Smirnoff Vanilla", "Smirnoff Watermelon", 
                "Stoli Apple", "Stoli Blueberry", "Stoli Citrus", "Stoli Peach", "Stoli Raspberry", "Stoli Strawberry", "Stoli Vanilla",
                "Svedka Citron", "Svedka Raspberry", "Svedka Vanilla", "Svedka Clementine", "Three Olives Bubble", "Three Olives Citrus",
                "Three Olives Dude", "Three Olives Pomegranate", "Three Olives Purple", "Three Olives Rangtang", "Three Olives Root Beer",
                "Three Olives Vanilla", "UV Apple", "UV Blue", "UV Cherry", "UV Citruv", "UV Coconut", "UV Grape", "UV Orange", "UV Sweet
                Green Tea", "UV Vanilla"),
            "Rum" =>
                array ("Admiral Nelson Coconut", "Admiral Nelson Spiced", "Appleton VS", "Bacardi 151", "Bacardi Coconut", 
                "Bacardi Dragonberry", "Bacardi Gold", "Bacardi Grand Melon", "Bacardi Light", "Bacardi Limon", "Bacardi O", "Bacardi Razz",
                "Bacardi Rock Coconut", "Bacardi Torched Cherry", "Barton Rum", "Captain Morgan Lime Bite", "Captain Morgan Silver", 
                "Captain Morgan Spiced", "Captain Morgan Tattoo", "Castillo Light Rum", "Cruzan 151", "Cruzan Coconut", "Cruzan Light Rum",
                "Cruzan Mango", "Cruzan Pineapple", "Cruzan Vanilla", "Malibu Coconut", "Malibu Mango", "Malibu Passion Fruit", 
                "Malibu Pineapple", "McCormick Light Rum", "Mount Gay Eclipse", "Myers Dark Rum", "Parrot Bay", "Sailor Jerry", 
                "San Juan Light"),
            "Cordials" =>
                array ("Aftershock", "Alpen Wolfe", "Baileys Irish Cream", "Bols Blue Curacao", "Bols Butterscotch", "Bols Creme De Banana",
                "Bols Creme De Cacao Dark", "Bols Creme De Cacao Lt", "Bols Creme De Cassis", "Bols Creme De Menthe Green", "Bols Creme De
                Menthe White", "Bols Creme De Noyauk", "Bols Hot Cinnamon", "Bols Melon", "Bols Orange Curacao", "Bols Peach", "Bols
                Peppermint", "Bols Raspberry", "Bols Sloe Gin", "Bols Sour Apple", "Bols Strawberry", "Bols Triple Sec", "Caravella Limoncello"
                , "Carolans Irish Cream", "Chambord", "Chila Coffee Liquer", "Cointreau", "Dekuyper Amaretto", "Dekuyper Blue Caracao",
                "Dekuyper Bluesberry", "Dekuyper Buttershots", "Dekuyper Cherry Pucker", "Dekuyper Creme De Banana", "Dekuyper Creme De Cacao
                Dark", "Dekuyper Creme De Cacao Lt", "Dekuyper Hazelnut", "Dekuyper Hot Damn", "Dekuyper Island Blue Pucker", "Dekuyper Melon",
                "Dekuyper Peach Pucker", "Dekuyper Peachtree", "Dekuyper Peppermint", "Dekuyper Peppermint 101", "Dekuyper Pomegranate",
                "Dekuyper Razzmatazz", "Dekuyper Red Apple", " Dekuyper Root Beer", "Dekuyper Sloe Gin", "Dekuyper Sour Apple Pucker",
                "Dekuyper Strawberry Pucker", "Dekuyper Triple Sec", "Dekuyper Watermelon Pucker", "Disaronno Amaretoo", "Dr. Mcgillicuddy",
                "Drambuie", "Frangelico", "Galliano", "Godiva Chocolate", "Godiva White Chocolate", "Goldschlager", "Gran Gala", "Gran Marnier"
                , "Hypnotiq", "Jagermeister", "Jagermeister 1.75", "Juarez Triple Sec", "Kahlua", "Kamora", "Kamora 1.75", "Liquor 43",
                "McCormicks Irish Cream", "Midori Melon", "Mr. Boston Amaretto", "Mr. Boston Melon", "Pama", "Patron Citronage", "Romeo
                Amaretto", "Rumplminze", "Ryans Irish Cream", "Ryans Irish Cream 1.75", "Sambucca", "Sharkwater", "St Germain Elderflower",
                "Tequila Rose", "Tuacca", "X Rated"),
            "Brandy Cognac" =>
                array ("Courvosier", "E&J Brandy", "Hennessy", "Paul Mason Brandy", "Presidente Brandy", "Remy Martin VSOP"),
            "Gin" =>
                array ("Barton Gin", "Beefeater Gin", "Bombay Dry Gin", "Bombay Sapphire", "Hendricks", "New Amsterdam", "Seagrams Gin",
                "Tanqueray 10", "Tanqueray Gin", "Zemkoff Gin"),
            "Tequila" =>
                array ("1800 Reposado", "1800 Silver", "Cabo Wabo Anejo", "Cabo Wabo Blanco", "Cabo Wabo Reposado", "Corozon Blanco", "Don
                Julio Anejo", "Don Julio Blanco", "Don Julio Reposado", "Herradura Anejo", "Herradura Blanco", "Herradura Reposado", "Jose
                Cuervo Gold", "Jose Cuervo Gold 1.75", "Jose Cuervo Silver", "Juarez Gold", "Juarez Silver", "Milagro Select Barrel Silver",
                "Milagro Silver", "Montezuma Blue", "Pancho Villa Rojo", "Patron Anejo", "Patron Reposado", "Patron Silver", "Patron Silver
                1.75", "Sauza Commemerativo Anejo", "Sauza Gold", "Sauza Hornitos Plata", "Sauza Hornitos Reposado"),
            "Scotch" =>
                array ("Balvenie 12yr", "Chivas Regal", "Clan Mcgregor", "Crawfords Scotch", "Cutty Sark", "Dewars White Label", "Famous
                Grouse", "Glenfiddich 12yr", "Glenlivet 12yr", "J Walker Black", "J Walker Red", "J&B Rare", "Macallan 12yr", "Macallan 15yr",
                "McCormick Scotch"),
            "Mixers" =>
                array ("Dessert Island Long Island Mix", "Finest Call Grenadine", "Finest Call Lime", "Finest Call Strawberry", "M&R Dry
                Vermouth", "M&R Sweet Vermouth", "Master of Mix Bloody Mary", "Master of Mix Bloody Mary 1.75", "Master of Mix Margarita",
                "Master of Mix Margarita 1.75", "Master of Mix Pina Colada", "Master of Mix Pina Colada 1.75", "Master of Mix Strawberry
                Daquiri", "Master of Mix Strawberry Daquiri 1.75", "Master of Mix Sweet & Sour", "Master of Mix Sweet & Sour", "Master of Mix
                Sweet & Sour 1.75", "McCormick Long Island Ice Tea Mix", "Tribuno Dry Vermouth", "Tribuno Sweet Vermouth", "Zing Zang Bloody
                Mary Mix"),
            "Kegs" =>
                array ("Blue Moon 1/6", "Boulevard Wheat 1/6", "Bud Lt 1/2", "Coors Lt 1/2", "Dos Equis Amber 1/2", "Fat Tire 1/6", "Guiness
                1/2", "Keystone 1/2", "Michelob Ultra 1/6", "Miller Lt 1/2", "Natural Lt 1/2", "New Belguim Seasonal 1/6", "Ranger IPA 1/6",
                "Sam Adams 1/2", "Sam Adams 1/6", "Sam Adams Seasonal 1/6", "Shock Top 1/6", "Sierra Nevada Pale Ale 1/2", "Sierra Nevada Pale
                Ale 1/6", "Tallgrass Ale 1/6", "Tallgrass IPA 1/6", "Woodchuck 1/6"),
            "Bourbon" =>
                array ("Crown Royal", "Crown XR", "Crown Reserve", "Crown Black", "Seagrams 7", "Seagrams VO", "Pendleton", "Canadian Mist",
                "Canadian Club", "Jack Daniels Black", "Evan Williams Black", "Jack Daniels Single Barrel", "Canadian Club 12yr", "Canadian
                Club Sherry", "Windsor", "Northern Light", "Soco 100pr", "Soco", "Soco lime", "Lord Calvert", "Black Velvet", "Yukon Jack",
                "Crown Royal Cask 16", "Mccormick Blended", "Kentucky Gentleman", "Kentucky Deluxe", "Pm Deluxe", "Revel Stoke", "Wild turkey
                American Honey", "Seagrams 7 Dark Honey", "Michael Collins", "Bushmills", "Bushmills 16", "Bushmills Black Bush", "Tullamore
                Dew", "Jameson Irish", "Jameson 12yr", "Jameson 18yr", "Jameson Gold Reserve", "Early Times", "Old Crow", "Kessler", "Ten High"
                , "Ancient Age", "Wild Turkey 80", "Wild Turkey 101", "Old Charter 8yr", "Old Charter 10yr", "Weller", "Weller 107", "Rebel
                Yell", "Buffalo Trace", "Rittenhouse Rye", "Elijah Craig 12yr", "Elijah Craig 18yr", "George Dickel", "Jim Beam 4yr", "Jim
                Beam 7yr", "Jim Beam Red Stag", "Jim Beam Black", "Jim Beam Rye", "Wild Turkey Rare Breed", "Knob Creek", "Knob Creek Single
                Barrel", "Makers Mark", "Makers 46", "Bulleit", "Woodford Reserve", "Four Roses Yellow", "Four Roses Small Batch", "Four Roses
                Single Barrel", "Gentleman Jack", "R1 Rye", "Blantons", "Bookers", "Basil Haydens", "Bakers", "Wild Turkey Tradition", "Wild
                Turkey Kentucky Spirit")
        );

        print "<center><div width\"500\">";

        $producto = array_keys($products);

        foreach ($producto as $value)

        {

        $us_value = str_replace(' ', '_', ucwords($value));
        $spacedvalue = str_replace('_', ' ', ucwords($value));

        print "$space<a href=\"#\" class=\"$us_value\">$spacedvalue</a>$space";

        }
        print "</div></center><br><br>";

        foreach ($producto as $value)

        {

        $us_value = str_replace(' ', '_', ucwords($value));
        $spacedvalue = str_replace('_', ' ', ucwords($value));
        $count = (count($products["$spacedvalue"],COUNT_RECURSIVE));

        print "<div id=\"$us_value\"><table>\n";

        print "<tr>\n";
        print "<td width=\"135\"><strong>Product Name</strong></div>\n";
        print "<td width=\"50\"><strong>Quantity</strong></div>\n";
        print "</tr>\n";
        echo $count;

        if ($count <= 10)     
        {
            foreach ($products["$spacedvalue"] as $value)

            {

            $us_value = str_replace(' ', '_', ucwords($value));
            $spacedvalue = str_replace('_', ' ', ucwords($value));

            print "<tr><td><label class=\"productquantity\" for=\"productname\">$spacedvalue</label></td><td align=\"left\"><input class=\"productquantity\" name=\"$us_value\" type=\"text\" maxlength=\"3\" style=\"width: 15px\;\"></td></tr>";  

            }
        } else if ($count <= 30) {       
            foreach ($products["$spacedvalue"] as $value)

            {

            $us_value = str_replace(' ', '_', ucwords($value));
            $spacedvalue = str_replace('_', ' ', ucwords($value));

            print "<tr><td><label class=\"productquantity\" for=\"productname\">$spacedvalue</label></td><td align=\"left\"><input class=\"productquantity\" name=\"$us_value\" type=\"text\" maxlength=\"3\" style=\"width: 15px\;\"></td></tr>";  

            }
        } else if ($count <= 50) {
            foreach ($products["$spacedvalue"] as $value)

            {

            $us_value = str_replace(' ', '_', ucwords($value));
            $spacedvalue = str_replace('_', ' ', ucwords($value));

            print "<tr><td><label class=\"productquantity\" for=\"productname\">$spacedvalue</label></td><td align=\"left\"><input class=\"productquantity\" name=\"$us_value\" type=\"text\" maxlength=\"3\" style=\"width: 15px\;\"></td></tr>";  

            }
        } else if ($count <= 70) {
            foreach ($products["$spacedvalue"] as $value)

            {

            $us_value = str_replace(' ', '_', ucwords($value));
            $spacedvalue = str_replace('_', ' ', ucwords($value));

            print "<tr><td><label class=\"productquantity\" for=\"productname\">$spacedvalue</label></td><td align=\"left\"><input class=\"productquantity\" name=\"$us_value\" type=\"text\" maxlength=\"3\" style=\"width: 15px\;\"></td></tr>";  

            }


        print "</table></div>";
        }

        ?>`

1 Ответ

1 голос
/ 28 марта 2011

Используйте array_chunk , чтобы разбить массив на массивы по 10, а затем пройти через него.

Я рекомендую перемещать таблицы, не нужно делать дополнительную математику.

...