Exploding a string with value separators to an array in CiviCRM
CiviCRM stores its multiselect custom field values in the database by concatenating the values, e.g. like this
*value1*value2*
(I replaced the CRM_Core_DAO::VALUE_SEPARATOR by * because the real unicode character, #&01, does not show anything sensible.)
This represents
( [0] => value1 [1] => value2 )
Now if you just use explode(CRM_Core_DAO::VALUE_SEPARATOR, $value)
, you
get
( [0] => [1] => value1 [2] => value2 [3] => )
This is probably not wat you want. What you really want to do, is
CRM_Utils_Array::explodePadded($value)
I just put this in a blog post, because I always forget, and Google doesn't seem to know.
Comments
Comments powered by Disqus