Hallo!

Ik zit ergens mee, ik ben bezig met json_encode van een array.
Als mensen bijvoorbeeld een namen typen gescheiden met een plus, dus zo: naam1+naam2+naam3 dan wil ik dat als ik een functie aanroep dat naam1+naam2+naam3 worden omgezet naar ids dus zo: 1+2+2 maar hoe doe ik dit? Ik wil dit namelijk gebruiken om het zo in de database op te slaan, want ik kan van 1+2+3 een array maken en die json_encode n
Ik heb al een functie om de naam naar een id om te zetten, deze functie heet usernameToId()

Dit is de code die ik tot nu toe heb:

$users = json_encode(explode('+', $users));



alvast bedankt!
Hopelijk zijn er goede redenen om dit op te slaan als een encoded string ipv een losstaand tabel maar dat terzijde met array_map is dit vrij makkelijk te doen:

<?php
function usernameToId($strUsername)
{
	// return ...
}

$aUsers = explode('+', $strUsers); // van string naar array
$aUserIds = array_map("usernameToId", $aUsers); // call usernameToId voor elke user en zet deze in $aUserIds

// ... insert json_encode($aUserIds) ... 
?>
Als je de controle hebt over de invoer dan zorg je toch dat je in eerste instantie id's invoert in plaats van je in allerlei vreemde bochten wringen? En als je niet wilt dat gebruikers deze informatie vrij in kunnen vullen dan geef je hun deze keuze simpelweg niet? Laat ze gebruikers selecteren, waarbij de id's direct kunnen worden opgeslagen.

Zoals het nu klinkt maak je zelf van je datastructuur een potje, en vervolgens schrijf je allerlei ingewikkelde code om dit weer op te lossen :/. Pak het eens slim aan?

Reageren