Explode naar simpele array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Application Developer Tech Lead

We’re Hiring! A UPS Application Developer Tech Lead *REMOTE WORK POSSIBLE FOR THIS ROLE As a Tech Lead Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life cycle activities, e.g. analysis, technical requirements, design, coding, testing and the implementation of software. Working in our Europe development center in Eindhoven means working in an international team with onsite people as well as

Bekijk vacature »

Workforce Time Management Solution Manager

Cargill JOB PURPOSE AND IMPACT The WTM Solution Manager will be the information technology solution owner sponsor for all global initiatives within the Workforce Time Management (WTM) portfolio. In this role, you will ensure proper governance and key stakeholders are engaged, providing solution oversight of scoping and delivery work and act as an equity partner to ensure delivery excellence. You will be responsible for building, sustaining and enhancing the solution capabilities, including driving modernization, standardization and differentiation where appropriate, achieving buy in for innovation and transformation investments, bringing the outside in and consulting with our functional leaders to develop meaningful

Bekijk vacature »

Support medewerker

Als Support medewerker bij Prosoftware zorg je ervoor dat zorgverleners optimaal gebruik kunnen maken van onze softwareproducten. Je bijt je helemaal vast in de gebruikersvragen die de klant meldt: je analyseert de situatie en legt je gevonden oplossing uit aan de klant. We zoeken een analytische doorzetter die het leuk vindt om ons softwareprogramma voor de zorg van A tot Z te leren kennen. Je bent samen met vier helpdeskcollega's het visitekaartje van het bedrijf en je doorgrond samen de complexe administratieve processen in de zorg. Onze klanten zijn werkzaam in de zorg en niet computer-minded en dat verdient een

Bekijk vacature »

C++ Developer (non Embedded)

Senior C++ Software developer (not embedded) with excellent knowledge of and hands on experience with UI Frameworks. In this role, you have the opportunity to Get to know that the average heart beats about 100.000 times daily. And that more than 7 million people each year die from coronary heart disease's so, innovation, prevention, diagnosis and treatment is essential to reduce this number and improve the life of the patient. At Philips IGT-Devices we are working on industry leading solutions helping clinicians on deciding, guiding, treating and confirming the right therapy for each patient in real-time during image-guided therapies (IGT).Are

Bekijk vacature »

Front-end Developer voor zeer succesvolle start-up

Bedrijfsomschrijving Ben jij een medior/senior Front-end Developer en zoek je een leuke interne en technisch uitdagende Front-end functie bij een zeer succesvolle start-up? Reageer dan direct! Miujn opdrachtgever heeft in zeer korte tijd veel succes behaald met een uniek platform. Het product is uniek en wordt door grote (internationale) organisaties gebruikt. Het is een specialistisch internetbureau die allemaal maatwerkoplossingen ontwikkelt, die zorgen voor een geweldig eindresultaat. Bedrijven zoals Vodafone en Tommy Hilfiger behoren tot hun klantenkring, dat zegt wel iets over het succes en het unieke product die ze hebben ontwikkeld. Als je hier komt te werken kom je in

Bekijk vacature »

Stage Web Developer

Internship Full-stack mobile developer Job description You are partly responsible for the development of the Front-end and / or Back-end of Nibblr. Depending on your qualities, you will be deployed for front-end or back-end activities. We prefer to train you as a full-stack developer, as the developers in the team are. You work on custom solutions using the latest techniques. Within the product development team you mainly work under the supervision of the Lead developer and interaction / visual designer who takes care of the creative and interaction side. You work together with other developers on new features. You also

Bekijk vacature »

Medewerker ICT / helpdeskmedewerker

Politiebond zoekt medewerker ICT / helpdeskmedewerker (0,57 fte) De Nederlandse Politiebond zoekt per direct een medewerker ICT / helpdeskmedewerker voor 20 uur per week (0,57 fte) die onze mooie organisatie wil komen versterken. De NPBis een vakbond voor personeel van de Nationale Politie. Namens ruim 27.000 leden zijn wij dagelijks in de weer om bij de werkgever betere arbeidsvoorwaarden te bedingen. Daarnaast hebben we een eigen juristen- en advocatenteam, dat dag in dag uit rechtshulp biedt aan leden die in problemen (dreigen te) komen op het gebied van bijvoorbeeld werk en inkomen, letselschade en strafrechtelijke vervolging. Iets dat elke politieambtenaar

Bekijk vacature »

Fullstack .NET developer voor de sociale sector

Bedrijfsomschrijving Dit mooie bedrijf is al ruim 30 jaar actief binnen de sociale sector. Ze helpen mensen met een afstand tot de arbeidsmarkt naar werk toe, maar ook op het gebied van zorg en welzijn dragen zij hun steentje bij. Dit doen ze inmiddels niet alleen meer in Nederland maar ook over de landsgrenzen heen. Het bedrijf is nu 700 man groot en de IT afdeling is ondersteunend aan de business en bestaat nu uit 20 medewerkers verdeeld over 2 development teams. Functieomschrijving Je komt te werken binnen een van de development teams. Je gaat werken aan portalen voor de

Bekijk vacature »

Application Developer Tech Lead

We’re Hiring! A UPS Application Developer Tech Lead *REMOTE WORK POSSIBLE FOR THIS ROLE As a Tech Lead Developer at UPS you work on delivering functionality for highly complex IT systems. You collaborate in agile teams and participate in emerging technologies and processes like CI/CD and DevOps to ensure that we meet our objectives effectively and efficiently. Your primary role is to perform full system life cycle activities, e.g. analysis, technical requirements, design, coding, testing and the implementation of software. Working in our Europe development center in Eindhoven means working in an international team with onsite people as well as

Bekijk vacature »

Platform & Device Developer

You will work on many dynamic projects as a Platform & Device Developer, in which you can express your creativity. How do I become a Platform & Device Developer at Coolblue? As Platform & Device Developer, you are responsible for building and developing the platforms on which all Coolblue employees work. You are inquisitive and never shy away from a challenge. You like to know why certain systems or processes have been developed the way they have and conduct some research to improve them. You talk to different stakeholders and developers to see if your new solution works. In this

Bekijk vacature »

Full Stack Developer

Wat ga je doen? Het bouwen van een Corporate website en Community Portal, is dat iets wat jij al eerder hebt gedaan? Ben jij minimaal 32 uur beschikbaar en wil jij graag samenwerken met het ICT Robotics & Applications Team van Yource? Word onze nieuwe Full Stack Developer! Als Full Stack Developer ga jij je bezig houden met alles wat met web-ontwikkeling te maken heeft. Onder andere het bouwen en de doorontwikkeling van onze Corporate websites en Community Portal, deze zijn cruciaal in onze strategie. De Portal is dé plaats van waaruit we met potentiele kandidaten, onze members en partners

Bekijk vacature »

Mendix Advanced Developer (NL)

Mendix Advanced Developer (NL) Den Haag HBO/WO IT Professional "Als Mendix Advanced Developer impact maken op de groeiende E-commerce markt met onze logistieke software en onze kritieke logistieke keten. Je doet dit door ontwikkeling en uitbreiding van onze Mendix Cloud omgeving, waarbij je complexe business processen vertaalt naar kritieke Mendix applicaties.". Wat ga je doen? PostNL is becoming a postal tech company Als Mendix Advanced Developer ben je onderdeel van een multidisciplinair Business-IT-team bestaande uit onder andere een Lead, Mendix Developers en Solution Consultants. Wij zetten Mendix in voor kritieke processen waarbij applicaties optimaal moeten performen om dagelijks rond de

Bekijk vacature »

GIS Developer

Bedrijfsomschrijving Als GIS Developer kom je te werken bij een high-tech ingenieursbureau in de regio van Utrecht. Al ruim 15 jaar werken ze aan de eigen ontwikkeling van innovatieve applicaties op het gebied van mobiliteit en infrastructuur. Met al hun jaren ervaring bedenken en ontwikkelen ze geografische oplossingen voor grote en bekende organisaties in Nederland. Momenteel maken duizenden gebruikers gebruik van hun applicaties en proberen ze constant vernieuwend te zijn in hun aanbod naar klanten. Je komt te werken in een informeel Agile minded team van 25 collega's, waarvan 6 andere (GIS) developers. Als Developer ben je in teamverband verantwoordelijk

Bekijk vacature »

Service Desk Officer

IHE DELFT Institute for Water Education offers graduate education in Delft, The Netherlands, and carries out research and capacity building projects all over the world. The mission of IHE Delft is to contribute to the education and training of professionals and to build the capacity of sector organizations, knowledge centres and other institutions active in the fields of water, the environment and infrastructure in developing countries and countries in transition. IHE Delft has a permanent staff of 230 of which more than 140 are scientific staff, while about 250 guest-lecturers from academia and industry contribute to the educational programme. Each

Bekijk vacature »

Senior PHP Developer / Laravel

Bedrijfsomschrijving Deze organisatie zoekt een enthousiaste Laravel developer die graag in een innovatieve omgeving wil werken. Deze organisatie kent geen hiërarchie, sterker nog de cultuur kun je hier bestempelen als zeer laagdrempelig. Ze zijn behoorlijk gegroeid in de afgelopen jaren en ondanks dat het inmiddels een groot bedrijf is geworden hangt die familiaire sfeer er nog steeds. De software die ze hebben ontwikkeld wordt gebruikt voor klanten die zich in E-commerce omgeving begeven. Je krijgt hier de mogelijkheid om te werken met alle facetten binnen PHP met de laatste moderne technieken. Naast goede werkomstandigheden zijn de arbeidsvoorwaarden hier ook uitstekend!

Bekijk vacature »
Yoeri Achterbergen

Yoeri Achterbergen

18/11/2020 13:52:32
Quote Anchor link
Hoi Hoi,


Ik heb een vraagje over de explode functie.
Als ik een explode uitvoer dan word deze in een associative array gezet.
Kan dit ook naar een simple array vertaald worden?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
//explode output standaard
Array ( [0] => 123 [1] => 456 [2] => 789 );


//de output die ik graag zou krijgen
Array ( '123',  '456', '789');
?>
 
PHP hulp

PHP hulp

16/04/2021 05:25:22
 
- Ariën -
Beheerder

- Ariën -

18/11/2020 13:58:36
Quote Anchor link
In beide gevallen komt het er associatief uit. Zo werken array's nu eenmaal.

https://3v4l.org/clWM0
Gewijzigd op 18/11/2020 13:59:03 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

18/11/2020 14:32:19
Quote Anchor link
Alle arrays worden geïndexeerd. Wanneer je niet expliciet een index aangeeft, wordt er vanaf 0 genummerd.

Weet niet precies wat je bedoeldt met een simpel array, maar alle arrays hebben een index.

Indien je twijfelt over de (exacte) inhoud, en de typen van de elementen (want hierboven heb je een array met strings en eentje met integers, dus in die zin verschillen deze van elkaar), dan kun je altijd de inhoud inspecteren met hulpfuncties zoals print_r() of var_dump().
 
Ad Fundum

Ad Fundum

18/11/2020 15:15:24
Quote Anchor link
Als uitvoer kan het zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$arr1
= Array ( 0 => 123, 1 => 456, 2 => 789 );
print '$arr2 = Array ( \'' . implode('\', \'', $arr1) . '\' );';
?>

Resultaat:
$arr2 = Array ( '123', '456', '789' );
Gewijzigd op 18/11/2020 15:16:22 door Ad Fundum
 
Thomas van den Heuvel

Thomas van den Heuvel

18/11/2020 16:06:59
Quote Anchor link
Klopt dat nog als $arr1 leeg is?
 
Ad Fundum

Ad Fundum

20/11/2020 09:44:46
Quote Anchor link
$arr1 is niet leeg, zie regel 2.
 
- Ariën -
Beheerder

- Ariën -

20/11/2020 10:01:24
Quote Anchor link
Volgens mij gaat er volgens Thomas om dat 'áls $arr1 leeg is'. Ik heb het idee dat hij bedoelt dat je in dat geval een lege array moet ziet.
Gewijzigd op 20/11/2020 10:02:09 door - Ariën -
 
Ad Fundum

Ad Fundum

20/11/2020 10:09:54
Quote Anchor link
Als $arr1 leeg is heeft Youri geen probleem, een lege associatieve array heeft geen indexes.
Ik begrijp dan ook niet helemaal waarom Thomas dit aanhaalt?
Gewijzigd op 20/11/2020 10:10:32 door Ad Fundum
 
- Ariën -
Beheerder

- Ariën -

20/11/2020 10:30:18
Quote Anchor link
Bijna goed:
Als $arr1 leeg is, dan krijgt implode niets door, en geeft het een foutmelding.
Als de array van $arr1 leeg is, dan krijg je een werkende output:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$arr2
= Array ( '' );
?>

Nog niet helemaal logisch dus omdat je toch een array blijft hebben met een leeg element
Gewijzigd op 20/11/2020 10:33:04 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

20/11/2020 15:38:23
Quote Anchor link
Een implode op een leeg array is volgens mij prima toegestaan?

Het probleem is inderdaad dat als je een leeg array als invoer hebt er een (niet-leeg) array met een (leeg) element geretourneerd wordt.

Misschien is het handig als de topicstarter verder toelicht wat nu precies het probleem is? Een explode geeft aan dat het geserialiseerde invoer betrof waarbij blijkbaar de keys/indexen toch geen betekenis hadden. Wat maakt het dan uit welke index hier aan toegekend wordt met een explode? Zoals eerder aangehaald, alle arrays hebben indexen.

En hiervoor zou je nog kunnen kijken naar de aanpak. Waarom is de invoer uberhaupt geserialiseerd? Heb je invloed/zeggenschap op/over de vorm van de opslag? Wellicht wil je dat dan gestructureerd(er) aanpakken (dan de boel serialiseren) of in een standaard formaat gieten (bijvoorbeeld JSON)?
 
Ad Fundum

Ad Fundum

23/11/2020 13:43:43
Quote Anchor link
Ik denk dat jullie de discussie op een zijspoor zetten.

Youri vroeg: "Als ik een explode uitvoer dan word deze in een associative array gezet."

Waarna ik zei: "Een lege associatieve array heeft geen indexes."

Dus: van een lege array is hier geen sprake, want die levert geen indexes, en is daarmee niet associatief.
Waarom dan toch doorzagen? Kan je dan niet beter de code verbeteren met je eigen if()-je voor lege arrays?
Weet je wat? Ik doe het wel voor, dat voorkomt veel onnodige alinea's:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$arr1
= [];
echo (count($arr1) > 0) ? '$arr2 = Array ( \'' . implode('\', \'', $arr1) . '\' );' : '$arr2 = Array ();';
?>


Kijk, nu werkt het ook met lege arrays. Goed he?
En ik hoor nu al een argument opborrelen: "Ja, maar nu heb je twee keer '$arr2 = Array ('.
Dat is voor de leesbaarheid.
Maar je bent natuurlijk vrij om daar hele mooie code van te maken. Plak het vooral hieronder. Succes.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/11/2020 17:18:05
Quote Anchor link
Bruh.

Voordat je blindelings antwoord geeft op een vraag zou je natuurlijk ook na kunnen denken over de vraagstelling zelf, of deze zinnig is en of de ingeslagen weg wel hout snijdt. Tenzij je enige doel is om (antwoorden op de precieze vraag) te faciliteren kan ik mij hier misschien nog iets bij voorstellen, maar dit forum zou toch wat verder moeten gaan dan dat...

@Yoeri dumpt een array, en kreeg mogelijk meer te zien dan hij had verwacht, maar elk (fair enough, niet-leeg) array heeft indexen, dus het is logisch en accuraat dat je deze dan ook te zien krijgt.

Er bestaat niet zoiets als een "simpel array zonder indexen", dus waarom zou je een soort van dumpfunctionaliteit hebben die dit weerspiegelt? Tenzij je een soort van opmaak wilt toepassen op je dump? Maar zelfs dan, het nut van een dump lijkt mij nog steeds dat je de precieze inhoud weergeeft, hier inhoudelijke aanpassingen op uit gaan voeren lijkt mij niet wenselijk.

Misschien kan de topicstarter duidelijkheid verschaffen over hoe hij dit denkt te kunnen gebruiken?

Als dit alles bedoeld is om de leesbaarheid te verbeteren kun je er beter simpelweg <pre></pre> omheen zetten:
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
<?php
// output escaping
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}


// generieke dumpfunctie, je zou dit nog uit kunnen breiden met andere is_...() controles
function dump($in) {
    if (is_array($in)) {
        $in = print_r($in, true);
    }

    echo '<pre>'.escape($in).'</pre>';
}


// test array
$test = array(
    'aap',
    'hello' => 'world',
    'html' => '<b>bold</b>',
    4,
);


// output header
header('Content-Type: text/html; charset=UTF-8');
// dump gegevens
dump($test);
?>


Zoals eerder aangegeven, de twee arrays zijn ook niet equivalent. De een bevat een aantal integers, de ander een aantal strings. Ook het aanpassen van het array waarbij de indruk wordt gewekt dat de inhoud andere types heeft lijkt mij op zijn zachtst gezegd misleidend.

Naar aanleiding van @AdFundums code hierboven: wat is het idee om hier nog de prefix '$arr2 = ...' aan toe te voegen? En met welk doel? Om dit te evalueren? Om PHP-code te genereren? Beide lijken mij verre van goede ideeën. Dit lijkt mij voortborduren op een slecht ontwerp. Misschien heb je met jouw reactie wel een antwoord gegeven op de vraag, maar tegelijkertijd stuur je iemand mogelijk compleet de verkeerde kant op.

Daarnaast zou je bij het geven van een "oplossing" ook rekening kunnen houden met een bredere inzetbaarheid van de aangeleverde code, en niet enkel iets aandragen dat weliswaar voor het gegeven voorbeeld werkt, maar in andere gevallen gewoon een verkeerd resultaat oplevert. Ik denk niet dat vragenstellers echt geholpen worden/zijn met ad hoc oplossingen.
 
Ad Fundum

Ad Fundum

24/11/2020 08:59:46
Quote Anchor link
Je maakt het er niet leuker op door op voorhand iedereen te diskwalificeren op basis van eigen aannames ("gaat niet ver genoeg", "misleidend", "slecht ontwerp", "niet wenselijk") zonder verdere uitleg.

Waar staat dat het om HTML gaat?
Waarom is de toevoeging $arrX = een voortburen op een slecht ontwerp, in dit geval van Ariën?
Hoezo wordt iemand de verkeerde kant op gestuurd als alleen de vraag beantwoord wordt?
Wat weet jij meer van de context, zonder het hier gevraagd te hebben?
Waarom moet het antwoord zo zijn dat het meer beantwoordt dan wat gevraagd wordt?

Ik zou denken dat als je serieus meer wilt weten over de context, dat je dat dan vraagt aan de vragensteller, in plaats van dat je anderen probeert af te troeven. Dat lijkt mij nou een goed idee.
 
Ozzie PHP

Ozzie PHP

24/11/2020 10:25:52
Quote Anchor link
** knip **

Edit:
Popcorn-meme's zijn echt niet nodig. Laten we het gewoon gezellig houden, en bewaar die versnapering maar lekker voor bij een film :-).
Gewijzigd op 24/11/2020 10:51:45 door - Ariën -
 
- Ariën -
Beheerder

- Ariën -

24/11/2020 17:02:41
Quote Anchor link
De vraag is:

Wil Yoeri nou code outputten, of wilt hij een array in het geheugen opslaan zonder indexen (wat dus niet kan)? Het is wel leuk dat er een draai aan is gegeven om dit in de code te outputten. Maar toch ben ik benieuwd naar Yoeri's reactie.
 



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.