Archief - array omvormen (genummerde array => associatieve)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bram

Legacy Member
Sorry voor de cryptische titel, maar ik weet niet goed hoe ik m'n vraag moet stellen (vandaar ook nog niets via documentation of google gevonden), vandaar: een voorbeeld.

Stel, ik heb een string: "name|Bram|address|Daar". Via explode('|', $string) maak ik daar een array van, maar nu zou ik die willen omvormen naar een associatieve array die er zo uit ziet:

array('name' => 'Bram', 'address' => 'Daar').

Is er een functie die dit doet, of moet ik gewoon loopen door m'n eerste array en afwisselend keys en values bepalen?

Jonathan

Legacy Member
Dit komt vanuit één van de comments bij PHP Explode in de PHP docs :

I needed a solution to implode and explode associative arrays. Now I use these two functions (there may be a better solution, but it works ;) ):

<?php
/**
* @name implodeAssoc($glue,$arr)
* @description makes a string from an assiciative array
* @parameter glue: the string to glue the parts of the array with
* @parameter arr: array to implode
*/
function implodeAssoc($glue,$arr)
{
$keys=array_keys($arr);
$values=array_values($arr);

return(implode($glue,$keys).$glue.implode($glue,$values));
};

/**
* @name explodeAssoc($glue,$arr)
* @description makes an assiciative array from a string
* @parameter glue: the string to glue the parts of the array with
* @parameter arr: array to explode
*/
function explodeAssoc($glue,$str)
{
$arr=explode($glue,$str);

$size=count($arr);

for ($i=0; $i < $size/2; $i++)
$out[$arr[$i]]=$arr[$i+($size/2)];

return($out);
};
?>

Hopelijk helpt het u vooruit ..
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan