Explode naar simpele array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior PHP Developer

Bedrijfsomschrijving Betreffende organisatie is een echte softwareclub, gevestigd in de regio van Amersfoort en gespecialiseerd in de ontwikkeling van een grote SaaS-oplossing waar veel gevoelige data in omgaat. Al ruim 20 jaar lang zijn zij bezig met de ontwikkeling van de applicatie, waar de focus ligt op locatie- en platformonafhankelijkheid en gebruikersvriendelijkheid. De software is device en browser onafhankelijk en draait tevens sterk op integraties met andere applicaties zoals Office 365. De front-end wordt ontwikkeld in Angular en de back-end wordt ontwikkeld in PHP. Verder werken zij met Linux servers en workstations. Ter versterking van het development team, dat momenteel

Bekijk vacature »

Front-End Developer

Wil je als Front-End Developer aan de slag? Ben je toe aan een nieuwe uitdaging met afwisseling en zelfstandigheid in een zelfsturend team dat verantwoordelijk is voor de bedienings-apps van het klimaat in gebouwen en in kassen? De klant heeft aan ambitie geen gebrek en wilt baanbrekend zijn binnen hun segment. Hoe zij dit willen doen? Daar vertel ik je graag meer over in een persoonlijk gesprek. Je werkt als Front-End Developer samen met Product Owners, Architecten, (Embedded) Software Ontwikkelaars, Support medewerkers en Test Engineers aan de ontwikkeling van onze producten. Als Front-End Developer ben je in staat om met

Bekijk vacature »

Test Automation Engineer

Werk jij graag mee aan het verbeteren van de kwaliteit binnen de Pensioenwereld? Heb jij ervaring met het automatiseren van testen en help je zo mee met de uitdagingen bij onze pensioenklanten? Dan zijn we op zoek naar jou! Wat ga je doen? Digitalisering en meer directe communicatie met de deelnemers zijn thema’s in de Pensioenwereld. Dit vereist kwaliteit en betrouwbaarheid. Als Test Automation Engineer zet je jouw kennis en ervaring van techniek en testen in om onze klanten hiermee te helpen. Je automatiseert systeem- en integratietesten, je voert performance en security testen uit en kan onze klanten helpen om

Bekijk vacature »

Java Ontwikkelaar FileNet P8 suite Overheid

Bedrijfsomschrijving De organisatie waarbinnen je aan de slag zal gaan levert diensten aan een groot aantal ministeries binnen Nederland. De systemen die zij beheren worden dan ook dagelijks door duizenden medewerkers gebruikt. Hierdoor is het van groot belang dat deze systemen altijd optimaal werken. Recent is er een project gestart waarbij een deel van de huidige systemen vernieuwd gaan worden. Voor de afdeling die verantwoordelijk is voor het inrichten en beheren van de nieuwe omgeving zijn mij momenteel opzoek naar een Java ontwikkelaar met kennis op het gebied van FileNet. Als FileNet Ontwikkelaar ga jij er samen met jouw DevOps

Bekijk vacature »

Cloud Solution Architect

Help jij onze klanten in de publieke veiligheidssector de stap te maken naar de high performance organisatie van de 21e eeuw? Wat ga je doen? Als Cloud Solution Architect maak je deel uit van een gedreven club professionals. Jij bent verantwoordelijk voor (een deel van) het ontwerp van een of meerdere systemen. Deze rol vereist communicatie en interactie met meerdere ontwikkel- en testteams en met de andere ontwerpautoriteiten. Jij treedt op als de vertegenwoordiger van de technische aspecten van het systeem bij het overleg met de klant. Je werkzaamheden omvatten: Realiseren en valideren van ontwerpen voor implementatie- en beheerdoeleinden; Uitvoeren

Bekijk vacature »

Cloud Automation Engineer VMware

Ben jij een ambitieuze Cloud Engineer die de ontwikkelingen en innovaties op het gebied van Cloud Infra & Automation op de voet volgt? Ben je een breed georiënteerde engineer en wil je je verdiepen in een specifieke technologie? Of wil je je expertise juist verbreden en certificeren in meerdere technieken en tools? Wij zoeken ter versterking van ons team zowel multi-skilled als specialistische engineers met passie voor hun vak! Bij ons krijg je de ruimte en vrijheid om in de praktijk jezelf verder te ontwikkelen op diverse projecten en aan je theoretische kennis te werken door het volgen van trainingen

Bekijk vacature »

Ervaren Data Specialisten

Wil jij de kans krijgen om jouw technische kennis en creativiteit te gebruiken voor het bouwen van unieke en geavanceerde dataplatformen? Wil jij het verschil maken voor toonaangevende klanten en ze helpen de stap te zetten om data-driven te worden? Wat ga je doen? Als Business Intelligence en Data Specialist bouw je samen met de klant, in agile teams, aan state-of-the-art data oplossingen. Je modelleert enterprise data warehouses, werkt aan complexe rapportages en interactieve dashboards, je legt een enterprise data lake neer, en nog veel meer. Niet alleen bouw je, maar je analyseert, ontwerpt en test de oplossingen. Je werkt

Bekijk vacature »

Senior .Net Developer - Kartrekker Financieel Azur

De internationale en innovatieve FinTech is marktleider in financiële reporting en trends software en services en breidt wegens groeiend succes haar producten en development teams verder uit. Hiervoor zoeken ze Senior .Net C# Developer die mogelijk ook het nieuw te vormen team technisch zal aansturen. De huidige oplossingen staan; aan jou de taak samen met de huidige Tech Lead te kijken naar optimalisatie en innovatie van het platform. Daarnaast breid je de tooling met je team uit en maak je de stap om het nieuwe development team te vormen en sturen als nieuwe Tech Lead. Met hen bouw je aan

Bekijk vacature »

PHP Developer Symfony

Bedrijfsomschrijving De organisatie waar je als PHP Developer komt te werken is een belangrijke schakel binnen de woningbranche, waar kwaliteit hoog in het vaandel staat. De platformen die zij ontwikkelen worden dagelijks door duizenden stakeholders in de woningsector gebruikt. Je komt te werken in een informeel IT team met 12 collega's, ieder met een grote passie voor techniek. Hierbij zul jij nauw samenwerken met een drietal andere PHP Developers. Binnen deze rol ben jij als PHP Developer verantwoordelijk voor hun grootste applicatie. Deze applicatie kent dagelijks ruim 5000 gebruikers en heeft daarnaast veel koppelingen met andere systemen en externe partijen.

Bekijk vacature »

OutSystems Developer / International environment /

Bedrijfsomschrijving For our international client based in Eindhoven area, we are looking for a junior OutSystems Developer. This company is a listed company with offices and plants all over the world. The company offers great experiences and exposure with people from different and unique cultures. They describe themselves as an innovative, professional and sustainable firm. Their goal is to provide for the generations to come. As Outsystems Developer you will be working in an international environment with approximately 15 direct colleagues, consisting of developers, integration specialists and application engineers. This Applications team is a very close and hard working team,

Bekijk vacature »

BI developer Azure ETL Microsoft BI tooling

Bedrijfsomschrijving Onze klant biedt financiële dienstverlening aan organisaties binnen de non-profit sector. Hierbij kun je denken aan overheden en instellingen met een maatschappelijk belang. In vergelijking met andere financiële dienstverleners staan zij er bijzonder goed voor en heeft de Covid-19 crisis gelukkig geen invloed. De organisatie heeft een open cultuur met vrij korte lijnen. Daarnaast zijn duurzaamheid en betrouwbaarheid termen die de organisatie kenmerken. Ter uitbreiding van het team zijn zij op zoek naar een ervaren BI Developer. Grote hoeveelheden data zijn kenmerkend voor het applicatie landschap. Business Intelligence staat zeer centraal in de organisatie en ze hebben op dit

Bekijk vacature »

Front-End Developer / JavaScript / Vue.JS / Financ

Nederland Amsterdam

Bekijk vacature »

ASP.NET CORE developer Fullstack / Intern

Bedrijfsomschrijving Mijn klant houdt zich bezig met alleen maar maatwerk software. Door de flexibiliteit van de developers bedienen ze bijna elke markt; van start-ups tot aan de grotere internationaal georiënteerde bedrijven. Bepaalde applicaties zijn standaard geworden en worden als totaalpakket aan de klant aangeboden. Andere applicaties worden maandelijks onder de loep genomen. Kortom: genoeg uitdaging voor een .NET Developer. Je komt te werken in een gezellig team van ongeveer 20 mensen met een platte structuur. Er wordt veel voor het personeel geregeld en regelmatig ga je met het team op pad. Je collega's zijn IT minded mensen. Het gaat hier

Bekijk vacature »

Front End Developer with excellent Angular skills

Front End Developer with excellent Angular skills to help migrate software application into the Cloud (Front End Developer Angular 65K Rotterdam IND Registered) For an international organisation, specialised in data management for the process industry, we are looking for a Front End Developer with strong work experience in Angular technologies. This organisation has developt a software solution that takes on the important role of connecting people, data and assets, and translates this data into 3D models. Until recently it was a desktop solution, that is currently being migrated to the (AWS) Cloud. Are you up for the task? Who are

Bekijk vacature »

Junior Developer Fullstack Java DevOps Cloud

Bedrijfsomschrijving Onze klant is een grote organisatie en is actief in de financiële sector. Binnen Europa bieden zij veel verschillende producten en diensten aan. De afdeling waar je komt te werken richt zich op het digitaliseren van primaire digitale processen. Wat digitale processen betreft lopen wij in Nederland ver voor op andere landen in Europa! Deze services wil de organisatie ook aanbieden aan hun collega’s en klanten in landen zoals België, Frankrijk en Duitsland. Jij en je team zijn verantwoordelijk voor de digitalisatie van de primaire processen en deze vervolgens te optimaliseren & automatiseren. Binnen het team zal je end-to-end

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

27/11/2020 10:21:42
 
- 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.