Based on a brief experiment, it seems that the REST API only allows arrays as properties if they are numerically indexed (so no PHP associative arrays), do not contain nulls, every element is the same type, and every element is an integer, string or boolean.
$props = array(1,2,3);
$props = array("foo","bar","baz");
$props = array(true, false);
$props = array(1.2, 2.3);
These do not work:
$props = array("foo"=>"bar", "baz"=>"qux");
$props = array(null);
$props = array(1, "foo");
$props = array(1.0, 1.2);
In the experiment, neo4jphp correctly JSON encoded and sent the property, and the server returned either a 400, or in the case of the null, a 500.
Probably something to do with Java arrays needing to have every element the same type and no null elements.
The last "not working" example is interesting. It fails because PHP's json_encoding turns floats with no fractional part into an integer, which of course makes the array a mixed type array.
-- Josh