Hola
bueno primero no entiendo porque pones comillas simples, en este caso no hace falta.
segundo
for($i=0; $i<=count($modelos2); $i++){
$_SESSION["marcamodelos"]["'".$idmarca."'"] = array("'".$modelo.$i."'"=>"'".$modelos2[$i]."'");
}
estas replazando el valor de $idmarca con un array nuevo por lo que siempre te dara el último valor
Prueba con esto a ver si te funciona o por lo menos te guia
Código:
for($i=0; $i<=count($modelos2); $i++){
if(!isset($_SESSION["marcamodelos"][$idmarca]))$_SESSION["marcamodelos"][$idmarca]=array();
$_SESSION["marcamodelos"][$idmarca][$modelo.$i]=$modelos2[$i];
}
//para leer los modelos
foreach($_SESSION["marcamodelos"] as $marca => $model){
foreach($model as $k =>$v){
echo "idMarca:".$marca." idModelo:".$k." Modelo:".$v;
}
}
Saludos