Looking for a way to produce a filename-safe hash of a given PHP array. I’m currently doing:
$filename = md5(print_r($someArray, true));
… but it feels “hacky” using print_r() to generate a string unique to each array.
Any bright ideas for a cleaner way to do this?
EDIT
Well, seems everyone thinks serialize is better suited to the task. Any reason why? I’m not worried about ever retrieving information about the variable after it’s hashed (which is good, since it’s a one-way hash!). Thanks for the replies!
Use
md5(serialize())instead ofprint_r().print_r()‘s purpose is primarily as a debugging function and is formatted for plain text display, whereasserialize()encodes an array or object representation as a compact text string for persistance in database or session storage (or any other persistance mechanism).