{"componentChunkName":"component---src-templates-blog-post-js","path":"/blog/2008/11/20/concatenating-arrays-in-php/","result":{"data":{"markdownRemark":{"html":"<p>Just a quick post so I know where to look the next time I forget how to concatenate arrays in PHP.</p>\n<p>Use <a href=\"https://www.php.net/array_merge\"><code>array_merge</code></a> to concatenate two numerically-indexed arrays; not <a href=\"https://www.php.net/array_push\"><code>array_push</code></a> and not <a href=\"https://www.php.net/language.operators.array\">the array union operator: <code>+</code></a>.</p>\n<pre class=\"grvsc-container default-dark\" data-language=\"php\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk12\">$first</span><span class=\"mtk1\"> = </span><span class=\"mtk11\">array</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;doh&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;ray&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;me&#39;</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk12\">$second</span><span class=\"mtk1\"> = </span><span class=\"mtk11\">array</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;fah&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;soh&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;lah&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;te&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;do&#39;</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk11\">echo</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&quot;Union: &quot;</span><span class=\"mtk1\">, </span><span class=\"mtk11\">var_export</span><span class=\"mtk1\">(</span><span class=\"mtk12\">$first</span><span class=\"mtk1\"> + </span><span class=\"mtk12\">$second</span><span class=\"mtk1\">, </span><span class=\"mtk4\">true</span><span class=\"mtk1\">), </span><span class=\"mtk8\">&quot;n&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk11\">echo</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&quot;Merge: &quot;</span><span class=\"mtk1\">, </span><span class=\"mtk11\">var_export</span><span class=\"mtk1\">(</span><span class=\"mtk11\">array_merge</span><span class=\"mtk1\">(</span><span class=\"mtk12\">$first</span><span class=\"mtk1\">, </span><span class=\"mtk12\">$second</span><span class=\"mtk1\">), </span><span class=\"mtk4\">true</span><span class=\"mtk1\">), </span><span class=\"mtk8\">&quot;n&quot;</span><span class=\"mtk1\">;</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk3\">// array_push returns int, not an array:</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk11\">array_push</span><span class=\"mtk1\">(</span><span class=\"mtk12\">$first</span><span class=\"mtk1\">, </span><span class=\"mtk12\">$second</span><span class=\"mtk1\">);</span></span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\"><span class=\"mtk11\">echo</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&quot;Push: &quot;</span><span class=\"mtk1\">, </span><span class=\"mtk11\">var_export</span><span class=\"mtk1\">(</span><span class=\"mtk12\">$first</span><span class=\"mtk1\">, </span><span class=\"mtk4\">true</span><span class=\"mtk1\">), </span><span class=\"mtk8\">&quot;n&quot;</span><span class=\"mtk1\">;</span></span></span></code></pre>\n<p>The output:</p>\n<pre class=\"grvsc-container default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"grvsc-source\">Union: array (</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    0 =&gt; &#39;doh&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    1 =&gt; &#39;ray&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    2 =&gt; &#39;me&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    3 =&gt; &#39;te&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    4 =&gt; &#39;do&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">Merge: array (</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    0 =&gt; &#39;doh&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    1 =&gt; &#39;ray&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    2 =&gt; &#39;me&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    3 =&gt; &#39;fah&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    4 =&gt; &#39;soh&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    5 =&gt; &#39;lah&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    6 =&gt; &#39;te&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    7 =&gt; &#39;do&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">Push: array (</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    0 =&gt; &#39;doh&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    1 =&gt; &#39;ray&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    2 =&gt; &#39;me&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    3 =&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    array (</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">        0 =&gt; &#39;fah&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">        1 =&gt; &#39;soh&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">        2 =&gt; &#39;lah&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">        3 =&gt; &#39;te&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">        4 =&gt; &#39;do&#39;,</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">    ),</span></span>\n<span class=\"grvsc-line\"><span class=\"grvsc-source\">)</span></span></code></pre>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    position: relative;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n    line-height: 1.4;\n  }\n  \n  .grvsc-code {\n    display: table;\n  }\n  \n  .grvsc-line {\n    display: table-row;\n    box-sizing: border-box;\n    width: 100%;\n    position: relative;\n  }\n  \n  .grvsc-line > * {\n    position: relative;\n  }\n  \n  .grvsc-gutter-pad {\n    display: table-cell;\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  .grvsc-gutter {\n    display: table-cell;\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter::before {\n    content: attr(data-content);\n  }\n  \n  .grvsc-source {\n    display: table-cell;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-source:empty::after {\n    content: ' ';\n    -webkit-user-select: none;\n    -moz-user-select: none;\n    user-select: none;\n  }\n  \n  .grvsc-gutter + .grvsc-source {\n    padding-left: 0.75rem;\n    padding-left: calc(var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem)) / 2);\n  }\n  \n  /* Line transformer styles */\n  \n  .grvsc-has-line-highlighting > .grvsc-code > .grvsc-line::before {\n    content: ' ';\n    position: absolute;\n    width: 100%;\n  }\n  \n  .grvsc-line-diff-add::before {\n    background-color: var(--grvsc-line-diff-add-background-color, rgba(0, 255, 60, 0.2));\n  }\n  \n  .grvsc-line-diff-del::before {\n    background-color: var(--grvsc-line-diff-del-background-color, rgba(255, 0, 20, 0.2));\n  }\n  \n  .grvsc-line-number {\n    padding: 0 2px;\n    text-align: right;\n    opacity: 0.7;\n  }\n  \n  .default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .default-dark .mtk12 { color: #9CDCFE; }\n  .default-dark .mtk1 { color: #D4D4D4; }\n  .default-dark .mtk11 { color: #DCDCAA; }\n  .default-dark .mtk8 { color: #CE9178; }\n  .default-dark .mtk4 { color: #569CD6; }\n  .default-dark .mtk3 { color: #6A9955; }\n  .default-dark .grvsc-line-highlighted::before {\n    background-color: var(--grvsc-line-highlighted-background-color, rgba(255, 255, 255, 0.1));\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, rgba(255, 255, 255, 0.5));\n  }\n</style>","timeToRead":1,"frontmatter":{"title":"Concatenating arrays in PHP","blurb":"A short reminder of different ways to combine two arrays in PHP","date":"2008-11-20T12:46:48.000Z","modified":"2011-01-03T17:20:13.000Z"}}},"pageContext":{"slug":"/blog/2008/11/20/concatenating-arrays-in-php/","next":{"fields":{"slug":"/blog/2009/02/23/macbook-pro-not-so-bad/"},"frontmatter":{"title":"The MacBook Pro’s not so bad..."}},"previous":{"fields":{"slug":"/blog/2008/10/14/google-where-art-thou-time-conversion/"},"frontmatter":{"title":"Google: Where art thou time conversion?"}}}},"staticQueryHashes":["1192980692"]}