Your code ends up processesing $property[0]
first, then tries to fetch the property of your object with the result of that. If you get $this->$property
first, then you can fetch things using the normal array notation and things will work as you expect.
$data = $this->$property;
var_dump($data[0]);