What is the best way to stacked subscripts for a matrix?

Do you mean subarray? Note that \substack{...} is defined as \begin{subarray}{c} ... \end{subarray}.

\documentclass{article}
\usepackage{amsmath}

\begin{document}

$(v_j^h)_{\begin{subarray}{l} 1\le h\le p-1 \\ 1\le j\le n\end{subarray}}$

\end{document}

enter image description here


You could use the starred version of smallmatrix, which comes with mathtools.

\documentclass{standalone}
\usepackage[utf8]{inputenc}

\usepackage{mathtools}

\begin{document}

$(v_j^h)_{\begin{smallmatrix*}[l]1\le h\le p-1\\1\le j\le n\end{smallmatrix*}}$


\end{document}

enter image description here


tabstackengine offers additional alignment and size possibilities.

\documentclass{article}
\usepackage{amsmath,tabstackengine}
\TABstackMath
\setstacktabulargap{0pt}
\TABbinary
\begin{document}
$(v_j^h)_{\begin{subarray}{l} 1\le h\le p-1 \\ 1\le j\le n\end{subarray}}$
accepted answer

\TABstackMathstyle{\scriptstyle}
$\setstackgap{L}{7pt}
(v_j^h)_{\tabularLongstack{rcccl}{ 23&\le& h_i&\le& p-1 \\ 1&\le& j&\le& n}}$
TABstack scriptstyle

\TABstackMathstyle{\scriptscriptstyle}
$\setstackgap{L}{6pt}
(v_j^h)_{\tabularLongstack{rcccl}{ 23&\le& h_i&\le& p-1 \\ 1&\le& j&\le& n}}$
TABstack scriptscriptstyle
\end{document}

enter image description here