Array PHP shortcode

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yoeri Achterbergen

Yoeri Achterbergen

19/02/2020 00:59:23
Quote Anchor link
Goede avond,


Ik heb een verkorte array PHP code maar wil deze graag naar de lange codering omzetten.
Door deze in de lange methode te zetten kan ik leren hoe dit precies werkt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//deze shortcode wil ik graag in de lange versie zien
$output[$data['category']][] = $data['type'];

//dit is wat ik zelf dacht
$output = $data['category'] = array($data['type']);
?>
Gewijzigd op 19/02/2020 01:00:10 door Yoeri Achterbergen
 
PHP hulp

PHP hulp

16/07/2020 18:11:52
 
Michael -

Michael -

19/02/2020 12:37:03
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$output
= array(
    $data['category']=>
    array($data['type'])
    );

?>

Zoiets? Geen idee wat je wil aangezien het nergens op slaat zo ;-)
 
Rob Doemaarwat

Rob Doemaarwat

19/02/2020 12:53:35
Quote Anchor link
Wat ben je allemaal aan het doen?

$output is blijkbaar al een array, want je gaat er iets aan toevoegen (maar waarschijnlijk maakt PHP 'm ook wel on-the-fly voor je aan ...)

$output[$data['category']] is al een key in deze array, met een array als waarde (want je gaat er iets aan toevoegen) (maar waarsc...).

En aan die array $output[$data['category']] voeg je dus een waarde $data['type'] toe.

Kortom: ik hoop dat hierboven iets staat van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$output
= array(); //of in shortcode = [];
$output[$data['category']] = array(); //of in shortcode = [];
//en dan misschien nog iets anders, en dan uiteindelijk

$output[$data['category']][] = $data['type'];
?>

Behalve de initialisatie van de arrays valt hier dus weinig aan short/long notatie te veranderen.

Tenzij je die $array[] = $x notatie "niet mooi" vindt om een waarde toe te voegen. Dan zou je array_push($array,$x) kunnen gebruiken. Maar of het daar leesbaarder van wordt ...
Gewijzigd op 19/02/2020 13:01:55 door Rob Doemaarwat
 
Thomas van den Heuvel

Thomas van den Heuvel

19/02/2020 15:40:51
Quote Anchor link
Yoeri Achterbergen op 19/02/2020 00:59:23:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
//deze shortcode wil ik graag in de lange versie zien
$output[$data['category']][] = $data['type'];

//dit is wat ik zelf dacht
$output = $data['category'] = array($data['type']);
?>


Errr... Maar beide codesnippets doen compleet verschillende dingen?

En in het twee fragment wil je een array toekennen aan een waarde (i.p.v. een variabele), dat gaat waarschijnlijk ook niet werken. Plus je bent daar een hoop dingen aan het kopiëren zonder toegevoegde waarde.

Als je in $output typen wilt onderbrengen in categorieën dan heb je dat subarray nodig... je ontwerpt dit soort datastructuren op een zodanige manier dat alle data die je nodig hebt precies past, uitgebreider hoeft niet, simpeler kan niet.
Gewijzigd op 19/02/2020 15:42:10 door Thomas van den Heuvel
 
Yoeri Achterbergen

Yoeri Achterbergen

19/02/2020 21:01:54
Quote Anchor link
als ik de longcode gebruik krijg ik alleen het laatste resultaat in de array.
Gebruik ik de shortcode krijg ik alle data netjes in de array.
Hoe kan dit? Het zou toch het zelfde moeten zijn?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
while ($data = mysqli_fetch_assoc($result)) {
 $output[$data['category']][] = $data['type'];
}

?>




Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while ($data = mysqli_fetch_assoc($result)) {
    //alleen laatste database result
    $output = array($data['category'] => array($data['type']));
}

?>
Gewijzigd op 19/02/2020 21:05:11 door Yoeri Achterbergen
 
Thomas van den Heuvel

Thomas van den Heuvel

19/02/2020 22:38:01
Quote Anchor link
In de tweede snippet wordt elke stap van de loop $output overschreven.
 



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.