現在の位置: ホーム> 最新記事一覧> php連想配列はarray_pushで追加できますか?操作方法を教える正しい方法

php連想配列はarray_pushで追加できますか?操作方法を教える正しい方法

gitbox 2025-08-30

array_push()の役割

array_push()は、配列の最後に1つ以上の要素を追加するために特別に使用される関数です。その構文は次のとおりです。

 <span><span><span class="hljs-title function_ invoke__">array_push</span></span><span>(</span><span><span class="hljs-keyword">array</span></span><span> &amp;</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-keyword">mixed</span></span><span> ...</span><span><span class="hljs-variable">$values</span></span><span>): </span><span><span class="hljs-keyword">int</span></span><span>
</span></span>
  • $配列:これはターゲット配列であり、参照によって渡されます。

  • $値:これらは、配列の最後に追加される要素であり、1つ以上の場合があります。

通常のインデックス付き配列(つまり、配列のキーは数字です)の場合、 array_push()は配列の最後に新しい要素を追加し、配列のインデックスが自動的に増加します。

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">array_push</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>);  </span><span><span class="hljs-comment">// 意思 4 そして 5 配列の最後に追加します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span></span>

出力:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span>
    [</span><span><span class="hljs-meta">4</span></span><span>] =&gt; </span><span><span class="hljs-number">5</span></span><span>
)
</span></span>

ただし、 array_push()は、連想配列とは多少異なって動作します。その理由を見てみましょう。


array_push()は連想配列に使用できますか?

連想配列の場合、 array_push()は推奨される方法ではありません。その理由は、 array_push()が配列の構造に従って配列の最後に要素を追加し、連想配列のキーは開発者によって定義され、必ずしも数字の増分シーケンスではないためです。したがって、 array_push()を使用して連想配列に要素を追加しようとすると、新しい要素が配列の端に追加され、自分自身を定義する連想キーの代わりに、インクリメンタル整数インデックスをキーとして自動的に使用します。

 <span><span><span class="hljs-variable">$assocArray</span></span><span> = [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'John'</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">25</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">array_push</span></span><span>(</span><span><span class="hljs-variable">$assocArray</span></span><span>, </span><span><span class="hljs-string">'developer'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$assocArray</span></span><span>);
</span></span>

出力:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">name</span></span><span>] =&gt; John
    [</span><span><span class="hljs-meta">age</span></span><span>] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; developer
)
</span></span>

ご覧のとおり、 Array_Push()はArrayの最後に値「開発者」を追加しますが、数値インデックス[0]を自動的に使用します。これは明らかに予想される動作ではありません。


連想配列に要素を正しく追加する方法

連想配列に要素を正しく追加するには、 array_push()の代わりにアレイのキーを直接使用して値を割り当てる必要があります。たとえば、新しいKey-Valueペアを追加すると、次のように実行できます。

 <span><span><span class="hljs-variable">$assocArray</span></span><span> = [</span><span><span class="hljs-string">'name'</span></span><span> =&gt; </span><span><span class="hljs-string">'John'</span></span><span>, </span><span><span class="hljs-string">'age'</span></span><span> =&gt; </span><span><span class="hljs-number">25</span></span><span>];
</span><span><span class="hljs-variable">$assocArray</span></span><span>[</span><span><span class="hljs-string">'job'</span></span><span>] = </span><span><span class="hljs-string">'developer'</span></span><span>;  </span><span><span class="hljs-comment">// アソシエーションキーを使用します "job" 要素を追加します</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$assocArray</span></span><span>);
</span></span>

出力:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">name</span></span><span>] =&gt; John
    [</span><span><span class="hljs-meta">age</span></span><span>] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [</span><span><span class="hljs-meta">job</span></span><span>] =&gt; developer
)
</span></span>

上記のように、アレイの構造を正確に制御できるように、連想キージョブを直接指定することにより、連想配列に要素を追加します。

キー値のペアを動的に追加する必要がある場合は、まず新しいキーを定義してから、対応する値を割り当てることができます。例えば:

 <span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">'city'</span></span><span>;
</span><span><span class="hljs-variable">$value</span></span><span> = </span><span><span class="hljs-string">'New York'</span></span><span>;
</span><span><span class="hljs-variable">$assocArray</span></span><span>[</span><span><span class="hljs-variable">$key</span></span><span>] = </span><span><span class="hljs-variable">$value</span></span><span>;  </span><span><span class="hljs-comment">// 動的に追加されました</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$assocArray</span></span><span>);
</span></span>

出力:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">name</span></span><span>] =&gt; John
    [</span><span><span class="hljs-meta">age</span></span><span>] =&gt; </span><span><span class="hljs-number">25</span></span><span>
    [</span><span><span class="hljs-meta">job</span></span><span>] =&gt; developer
    [</span><span><span class="hljs-meta">city</span></span><span>] =&gt; New York
)
</span></span>