Retrieving all the email addresses on a web page
First, your code isn't exactly substantial, so it's hard to write a good review.

Up first, file_get_contents() works, but curl is faster.

It's a little longer, but try this:

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);       

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}


Moving on to your regex:


/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/



Instead of A-Za-z, you can end with a /i, and make your search case insensitive:

/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/i


Depending on how complex you'll allow emails to be, you can add (or remove), some valid characters.

Next, you perform a array_values(array_unique($matches[0])) twice.


var_dump(array_values(array_unique($matches[0])));

$neaterArray = array_values(array_unique($matches[0]));



Into:

$neaterArray = (array_values(array_unique($matches[0])));
var_dump($neaterArray);


Your variable naming follows a camelCase standard all-throughout, so that's alright.

Your comments are generally good, but //store above in array for upcoming bit is incorrect as I pointed out above.


  Is this a good way to go about solving the problem? Are there parts that could be optimised with more suitable functions?


Swapping file_get_contents() with curl will improve the speed of page download.


  Is initialising the array imperative for this program? I tried it without the original declaration (in the preg_match_all line) and it still functioned.


You don't need to initialise the variable first, you really only would if it where in a for loop, in this case you can just output to a new variable.


  Is there a part/are there parts of the code that comes across as poorly written?


Not really, variable naming could be expressed better by replacing $string with $input and $neaterArray with $duplicateRemovedArray, but other than that, the code is good.