Q:

Could someone explain this PHP syntax?

I'm trying to patch a bit of PHP in a rather large and complex WordPress theme, and I found this line:
if(is_array($taxonomys)) {
    $tax = 1;
    foreach ($taxonomys as $key => $value ) {

        if($taxonomys[$key]->parent == 0 && isset($taxonomys[$key]->name) && in_array($taxonomys[$key]->name, $used_taxonomys)) {
            echo '<li class="tab"><li class="selected"><a href="#" data-filter="*" class="selected">'.lambda_translate_meta($taxonomys[$key]->name).'</a></h3></li>';
        } 
        if(in_array($taxonomys[$key]->name, $used_taxonomys) && $taxonomys[$key]->parent != 0 ) {                           
            echo '<li class="tab"><h3><a href="#" data-filter=".'.$taxonomys[$key]->slug.'_filt">'.lambda_translate_meta($taxonomys[$key]->name).'</a></h3></li>';
        }
    $tax++;
    }
}

Could someone please explain the -> and => syntax? Google is surprisingly unhelpful.
As a side note, if anyone would also offer there ideas about what the if statements are about, I would be incredibly grateful.

A:

foreach ($taxonomys as $key => $value ) {

This loops through each element in the $taxonomys array, assigning the key to $key, and the value to $value.  This array is a associative array where values have specific keys, not necessarily numeric keys.
$taxonomys[$key]->parent

The -> gets you the property of the object.  The object in this case is $taxonomys[$key], and the property they want is parent.  Note that they could have also just used $value->parent, since due to the foreach loop, $value is the same as $taxonomys[$key].

