Hoe kan ik de keys plus de waardes laten zien in deze loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer / Overheid / Complexiteit

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan een veiliger Nederland en je als Java Developer bezig houden met zeer complexe bedrijfskritische applicaties? Lees dan snel verder! Doorontwikkelen bedrijfskritische applicaties; Aanpassingen maken in de bestaande applicatie; Vertalen van jouw visie op continuous integration en continuous delivery; Debuggen van de applicatie; In gesprek gaan met eindgebruikers om verbetervoorstellen op te halen. Functie-eisen Minimaal HBO-werk en denkniveau; Minimaal 5 jaar werkervaring als Java Developer; Je bent minimaal OCP-Java SE 6 gercertificeerd; Je hebt kennis van Webservices en Continuous Integration; Je bent analytisch sterk en zowel klant- als resultaatgericht. Bedrijfsomschrijving Binnen

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Snelle Jaap

Snelle Jaap

12/04/2018 10:58:31
Quote Anchor link
Ik heb van deze string:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
Formaat : 60 cm | Kleur : century oak | Materiaal : eik | Prijs: 45,00\
Formaat : 60 cm | Kleur : dark oak | Prijs: 45,00\
Formaat : 60 cm | Kleur : grey | Prijs: 45,00\
Formaat : 80 cm | Kleur : century oak | Prijs: 75,00\
Formaat : 80 cm | Kleur : dark oak | Prijs: 75,00\
Formaat : 80 cm | Kleur : grey | Prijs: 75,00\


Deze array gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Array
(
    [0] => Array
        (
            [Formaat] => 60 cm
            [Kleur] => century oak
            [Materiaal] => eik
            [Prijs] => 45,00
        )

    [1] => Array
        (
            [Formaat] => 60 cm
            [Kleur] => dark oak
            [Prijs] => 45,00
        )

    [2] => Array
        (
            [Formaat] => 60 cm
            [Kleur] => grey
            [Prijs] => 45,00
        )

    [3] => Array
        (
            [Formaat] => 80 cm
            [Kleur] => century oak
            [Prijs] => 75,00
        )

    [4] => Array
        (
            [Formaat] => 80 cm
            [Kleur] => dark oak
            [Prijs] => 75,00
        )

    [5] => Array
        (
            [Formaat] => 80 cm
            [Kleur] => grey
            [Prijs] => 75,00
        )

)


Met de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<select class="productchoice">
    <option>Maak uw keuze</option>
    <?PHP
    $vars
=  $artikel['variabelen'];
    $variabelebackslash = explode('\\', $vars);
    // Maak een bruikbare array van bovenstaande string
    $varpijp = array_map(function($val){
        // Split
        $values = array_map('trim', explode('|', $val));

        // Split verder
        $keyvals = array_map(function($val) {
            // Split verder
            return array_map('trim', explode(':', $val));
        },
$values);

        // Maak een associative array met de variabele namen als keys
        return array_column($keyvals, 1, 0);
    },
$variabelebackslash);

    // Loop bovenstaande array binnen een select element
    foreach($varpijp as $productvar){
      // Filter eventuele lege resultaten eruit
      if(!empty($productvar)){
        if(!empty($productvar['Prijs'])){
          $varprijs = '+ € '.$productvar['Prijs'];
        }

        $productvars .= '<option>'.$productvar['Formaat'].' - '.$productvar['Kleur'].' '.$varprijs.'</option>';
      }
    }

    echo $productvars;
    ?>

</select>


Bovenstaande code geeft dit resultaat:

https://i.gyazo.com/841f0a267c44e255581fc3e156996c8e.png

Maar eigenlijk wil ik ook de keys laten zien zodat het er zo uitziet:

https://i.gyazo.com/2e65b366afede139a152f228a074af0d.png

Zoals je ziet staan alleen het formaat en de kleur er nu in, maar in mijn string staat ook materiaal. Ik wil graag dat ik oneindig opties kan invoeren. Dus ik moet die keys loopen samen met hun values en dat resultaat in die option tag stoppen.

Hierbinnen moet ik kijken welke keys er allemaal in elke arraylaag zitten en de waardes erbij tonen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
foreach($varpijp as $productvar){
      // Filter eventuele lege resultaten eruit
      if(!empty($productvar)){
        if(!empty($productvar['Prijs'])){
          $varprijs = '+  '.$productvar['Prijs'];
        }
        $productvars .= '<option>'.$productvar['Formaat'].' - '.$productvar['Kleur'].' '.$varprijs.'</option>';
      }
}


Hoe doe ik dat? Vooral die keys tonen lukt me niet.
 
PHP hulp

PHP hulp

26/09/2020 00:25:52
 
Jan R

Jan R

12/04/2018 11:25:31
Quote Anchor link
gebruik
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
foreach($varpijp as $key => $productvar)

ipv
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
foreach($varpijp as $productvar)


Jan
 
Snelle Jaap

Snelle Jaap

12/04/2018 15:24:12
Quote Anchor link
Top thanks! Ik heb het nu werkend zoals ik wil.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/04/2018 16:38:21
Quote Anchor link
Hm. Op veel sites zie je ook Faceted Searches waarbij je aparte zoekblokjes hebt voor verschillende aspecten, zoals bijvoorbeeld voor SSD harde schijven, daar kun je sorteren op eigenschappen zoals prijs, merk, opslagcapaciteit et cetera. Misschien biedt dat hier uitkomst? Moet je wel even kijken wat je doet als bepaalde artikelen bepaalde eigenschappen niet hebben (zoals materiaal).

En als je invloed hebt op dat invoerformaat (die lap tekst in je oorspronkelijke bericht), stap hier snel vanaf, want dat is een compleet onhandelbaar formaat. Het kost veelste veel moeite om daar informatie uit te prutsen. Maak gebruik van JSON of een ander formaat, dat werkt echt stukken eenvoudiger.
Gewijzigd op 12/04/2018 16:39:50 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.