Hola especialistas y expertos del tema, gracias de antemano por su siempre útil ayuda, hoy traigo un tema que no he podido resolver y espero me puedan ayudar porque no encuentro en que me estoy equivocando.
 Tengo una serie de n selects determinados por la variable $regcue, el formulario detecta y muestra los 7 selects y permite la selección de sus opciones, de esta forma:

echo "<form action='' method='POST' name='res'>\n";  
@$p2ap=$_POST['p2ap'];
@$p2ap1=array();
//despues de una busqueda en una base de datos se determina que:
$regcue=7;
$respb=array('Siempre','Casi siempre','Casi nunca','Nunca','');
for($x1 = 0; $x1 < $regcue; $x1++)
{    
      echo '<td><select name="p2ap[$x1]" value="$p2ap[$x1]">';              
      for($x1a = 0; $x1a < count($respb); $x1a++)
      {
            if($respb[$x1a] == $_POST['p2ap[$x1a]']){$selected = ' selected';}
            else{$selected = '';}           
            echo '<option value="'.$respb[$x1a].'"'.$selected.'>'.$respb[$x1a].'</option>';
      }
      echo '</select>';
     @$p2v=$p2ap['$x1'];
      array_push($p2ap1,$p2v);                               
 }
echo " <td><input type='submit' name='botonenv' value='Continuar a la parte 3' >";  
if (@$_POST['botonenv']=='Continuar a la parte 3') {print_r($p2ap1);}
                
Al presionar el submit el problema es que no me esta tomando los valores de los selects del arreglo y solo retiene el valor del ultimo select (en este caso "Nunca") y obtengo como resultado:

Array ( [0] => Nunca [1] => Nunca [2] => Nunca [3] => Nunca [4] => Nunca [5] => Nunca [6] => Nunca )

el resultado se repite en todo el arreglo con el valor del ultimo select aun cuando los 6 anteriores son de valores distintos

podrian ayudarme a saber en donde me estoy equivocando?????

por su gran ayuda como siempre, Gracias. y reciban un cordial saludos