как на счет этого - кажется длиннее, но оно позволяет вам изменять значения для каждого из уровней более управляемым способом
$l1 = array(
'first_name','last_name','pemail','dob','ambitions',
'memories','thoughts','image_1','image_2','image_3'
);
$l2 = array_merge(
array(
'message_1','message_2','message_3',
)
,$l1);
$l3 = array_merge(
array(
'v1','v2','v3','v4','v5','v6','v7','v8','v9'
),
$l1
);
$l4 = array_unique(array_merge($l2,$l3));
$completed = 4;
for ($i = 4; $i > 0 $i-- ) {
$arr = 'l'.$i;
foreach ( $$arr as $key ) {
if ( $user[$key] == '' || $user[$key] == '0' ) {
$completed--;
break;
}
}
if ( $i == $completed ) {
break;
}
}