Implode alleen de eerste level van een array, hoe?
nu wil ik de level met ['personal'] buiten de implode laten, hoe doe ik dat?
die juist niet
Geef eens een voorbeeld van $errors...
Toevoeging op 31/12/2013 00:53:31:
echo implode(",", array_filter($arr, "is_scalar")); is een voorbeeld en ik zou zoiets kunnen gebruiken maar ik weet niet met wat ik "is_scalar" moet vervangen
Toevoeging op 31/12/2013 00:54:23:
Array ( [general] => De velden met een sterretje(*) zijn verplicht. [personal] => Array ( [voornaam] => ! [achternaam] => ! [datum] => ! [telefoon1] => ! ) )
Toevoeging op 31/12/2013 01:12:13:
Misschien helpt dit een beetje de waarde van de nested array heeft "!" values met elkaar in gemeen
Wouter J op 31/12/2013 00:51:08:
Geef eens een voorbeeld van $errors...
Dan moet je dus geen code gaan geven, maar een voorbeeld van hoe die array zelf eruit ziet. Wij snappen niet wat jij bedoelt met "levels". En je moet ook uitleggen wat je wilt imploden. Je verhaal is tot nu toe nogal onduidelijk.
Maar als $error enkel $error['personal'] en $error['general'] bevat, pak dan gewoon alleen $error['general'].
Dus:
array_reduce:
Frank, in dat geval zal ik gaan voor Code (php)
1
2
3
4
5
2
3
4
5
<?php
$result = array_reduce($array, function ($acc, $i) {
return $acc .= ', '.$i->content;
}, '');
?>
$result = array_reduce($array, function ($acc, $i) {
return $acc .= ', '.$i->content;
}, '');
?>
Ja dat is met een callback functie toch? Ik mis je argumentatie waarom je het zo zou doen. Is het sneller, is het persoonlijke voorkeur?
'is_scalar' is de naam van een functie. array_filter() maakt een nieuwe array aan die alleen de waardes bevat waarvoor, in dit geval, de functie is_scalar() TRUE retouneerd. is_scalar() retouneerd alleen TRUE als een variabele van het type int, float, boolean of string is.
$errors['personal'] komt dus niet in het resultaat voor omdat deze een array is.
@eddy e het is niet enkel die twee (general of personal) ik heb andere ook alleen personal subarray moet er even uit in de output die ik wil hebben. Ik ga even dat bovenste van jou proberen
Toevoeging op 31/12/2013 12:39:20:
UPDATE
@Edde e
Ik heb even jou voorbeeld gebruikt en dit er van gemaakt
Maar krijg een warning
Warning: array_diff() [function.array-diff]: Argument #3 is not an array
Er is nu al een paar keer aan je gevraagd hoe de array er uit ziet en wat je wilt bereiken. Het is lastig om je verder te helpen als je hier geen antwoord op geeft.
Quote:
Ja dat is met een callback functie toch? Ik mis je argumentatie waarom je het zo zou doen. Is het sneller, is het persoonlijke voorkeur?
Persoonlijke voorkeur, nadat ik ben begonnen met haskell geef ik functies de voorkeur aan language constructs.
Alleen er zijn ook nog andere dan [general] en [personal]
Misschien helpt dit een beetje de waarde van de nested array heeft "!" values met elkaar gemeen dus als ik daar op kan filteren
Wat je hierboven hebt gegeven is de input, nu nog graag de verwachte output.
Gewijzigd op 31/12/2013 12:58:31 door Wouter J
Ik ben er bijna
Code (php)
Als ik alleen nog de Notice melding kan oplossen en dat die niet "Array" weergeeft, kijk hieronder
Notice: Array to string conversion in ..bestand.. on line 168
De velden met een sterretje(*) zijn verplicht.Array
Dat betekend dat je dus een Array aan een Array wilt koppelen als een string, die array moet dus omgezet worden naar een string. Hoe wil je dat doen?
voor het eerste ga ik google afzoeken naar de functie volgens mij ToString
Top! Ozzie, dat werkt