Munkres in his book states that:
Theorem 30.3 Suppose that $X$ has countable basis, then every open covering of $X$ contains a countable subcollection covering $X$.
$\textbf{Proof.}$
Let ${B_n}$ be a countable basis and $\mathcal{A}$ an open cover of $X$. For each positive integer $n$ for which it is possible, choose an element $A_n$ of $\mathcal{A}$ containing the basis element $B_n$. The collection $\mathcal{A'}$ of the sets $A_n$ is countable, since it is indexed with a subset $J$ of the positive integers. Furthermore, it covers X: given a point $x \in X$, we can chosse an element $A$ of $\mathcal{A}$ containing $x$. Since $A$ is open, there is a basis element $B_n$ such that $x \in B_n \subset A$. Because $B_n$ lies in an element of $\mathcal{A}$, the index $n$ belong to the set $J$, so $A_n$ is defined; since $A_n$ contains $B_n$, it contains $x$. Thus $\mathcal{A'}$ is a countable subcollection of $\mathcal{A}$ that covers $X$.
My first doubt is when he states $A_n$ is indexed with $J \subset \mathbb{Z}^+$. Why is this true? My second doubt is about the construction of $\mathcal{A'}$: he states that $\mathcal{A'}$ is the collection of the sets $A_n$, but could have $A, A^* \in \mathcal{A'}$ such that $B_n \subset A \ \cap \ A^*$. In this case, I think that we need have one of these sets in $\mathcal{A'}$ to ensure that $\mathcal{A'}$ is countable, but how exactly do I do this?
Thanks in advance!
Addressing your first doubt, the value of $n$ ranges over the set $J$ of all $n$ such that $B_n \subset A$ for some $A \in \mathcal{A}$. Since the list of $B_n$ is a countable enumeration of the basis elements, $n$ is always a positive integer. Some integers $n$ may not be in $J$, if there is no element of $\mathcal{A}$ containing the basis element $B_n$. But in any case the set $J$ is a subset of the positive integers.
As for your second doubt, what is happening is that for every $B_n$, we choose one $A \in \mathcal{A}$ containing it (if possible, as per the first point), and label it $A_n$. By definition of $J$ this means $n \in J$. We have a surjection from $\mathbb{Z}^+$ to $J$, so $J$ must be countable. Alternately, we have a surjection from the set of all $B_n$ to the set of all $A_n$. Since the former set is countable, so must the latter. Multiple different $A_i$ may contain the same basis element $B_n$, but $B_n$ will have been associated to only one of them . The others will be chosen for different basis elements.
EDIT:
I will add more detail about the construction of the set $\mathcal{A}'$.
First, for every $n \in \mathbb{Z}^+$, define the set $\mathcal{S_n} = \{A \in \mathcal{A}: B_n \subset A\}$. Then define the set $J = \{n \in \mathbb{Z}^+: \mathcal{S_n} \neq \emptyset\}$. Now, we have the countable collection $\mathcal{S} = \{\mathcal{S_n}: n \in J\}$ consisting of nonempty sets.
By the axiom of (countable) choice, there exists a choice function, $f: J \rightarrow \bigcup\limits_{n \in J}\mathcal{S_n}$ such that $f(n) \in \mathcal{S_n}$ for every $n \in J$.
Then define $A_n = f(n)$. Since $A_n \in \mathcal{S_n}$, we have that $B_n \subset A_n$ (by definition of $\mathcal{S_n}$). This is what is meant by "choosing" an element $A_n$ containing $B_n$.
We then have the set $\mathcal{A}' = \{A_n: n \in J\}$.
When I said that "$B_n$ is associated to one of the $A_i$", that was really just a vague way of saying that there is a function $g$ from the set $\{B_n: n \in J\}$ to the set $\mathcal{A}'$. This function would just be defined by $g(B_n) = f(n) = A_n$.
By definition, a function can map $B_n$ to only one value. So only one $A_n$ is "associated" to a given $B_n$, even if there might be multiple $A_i$ containing $B_n$.
But since every $A \in \mathcal{A}'$ is (by definition) equal to $f(i)$ for some $i \in J$, this means $A = f(i) = g(B_i)$ and $g$ is surjective. So every $A$ is "associated" to some $B_i$.