Originariamente inviato da portapipe
Ovvio che stringa e array non sono uguali!
Da quanto stai continuando a scrivere, non ti è proprio chiaro.

Originariamente inviato da portapipe
Quello che faccio io è stampare esattamente quello che c'è nel mio campo del database
Che è una stringa ...

Se non ne sei convinto, basta eseguire un var_dump() su quanto estratto dal database e, indovina un po', ottieni "string" ...

Originariamente inviato da portapipe
Quello che faccio è prelevare 'abc'=>'1', 'def'=>'2' dal database e inserirlo nelle parentesi dell'array
Ovvero inserisci UNA STRINGA come primo elemento di un ARRAY, esattamente come viene fatto in questa riga:

Codice PHP:
$string = array("'abc'=>'1', 'def'=>'2'"); 
Originariamente inviato da portapipe
Quello che non capisco è perché la stringa presa dall'array della query al db
Quello preso dalla query del DB NON è un'array, è UNA STRINGA. Applicaci var_dump() e te ne renderai conto anche tu.

Originariamente inviato da portapipe
perfettamente uguale a 'abc'=>'1', 'def'=>'2'
Per il semplice fatto che NON è perfettamente uguale.

Ti invito a riguardare il primo codice postato che dimostra chiaramente la differenza.