Creando Array Asociativo en PHP

Tengo una matriz multidimensional.

$shop = array( 
              array("appn1", "pub1" ,"pub2" , "pub3"),
              array("appn2", "pub1"),
              array("appn3", "pub1" ,"pub2")
            ); 

El primer elemento en cada matriz esNumero de aplicacion y el resto en cada matriz son losnúmeros de publicación. Obtengo el primer elemento (número de solicitud) y el último elemento de cada matriz (el último número de publicación) como este

 $index = count(array_keys($shop));
    for($i=0;$i<$index;$i++){

        $appln_nr = $shop[$i][0];
        echo $appln_nr;

        $publn_nr_index = count(array_keys($shop[$i]))-1;
        $publn_nr = $shop[$i][$publn_nr_index];
        echo $publn_nr;
   }

Ahora tengo el número de solicitud y el número de publicación para cada matriz interna.

Quiero crear una matriz asociativa a partir de los números de solicitud y de publicación.

donde la clave debe ser el número de solicitud y su valor es el número de publicación.

Gracias

EDITAR

Lo que estoy obteniendo de $ shop array

 Array
 (
  [0] => Array
    (
        [0] => appn1
        [1] => pub1
        [2] => pub2
        [3] => pub3
    )

  [1] => Array
    (
        [0] => appn2
        [1] => pub1
    )

  [2] => Array
    (
        [0] => appn3
        [1] => pub1
        [2] => pub2
    )
)

Y esto es lo que necesito en mi matriz asociativa.

Array(
    "appn1" => "pub3"
    "appn2" => "pub1"
    "appn3" => "pub2"
)

Respuestas a la pregunta(5)

Su respuesta a la pregunta