<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>collection &#8211; Aimeos</title>
	<atom:link href="https://aimeos.org/tips/tag/collection/feed/" rel="self" type="application/rss+xml" />
	<link>https://aimeos.org/tips</link>
	<description>ultra fast PHP e-commerce framework</description>
	<lastBuildDate>Wed, 10 Feb 2021 15:12:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.8</generator>

<image>
	<url>https://aimeos.org/tips/wp-content/uploads/2019/09/Aimeos_e_200-100x104.png</url>
	<title>collection &#8211; Aimeos</title>
	<link>https://aimeos.org/tips</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PHP: Array &gt; Map 2.0</title>
		<link>https://aimeos.org/tips/php-array-map-2-0/</link>
					<comments>https://aimeos.org/tips/php-array-map-2-0/#respond</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Wed, 10 Feb 2021 11:23:33 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[collection]]></category>
		<category><![CDATA[map]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=751</guid>

					<description><![CDATA[The new 2.0 major release of the PHP map package is available which includes new methods and support for working with multi-dimensional arrays in an easy way. Additionally, it comes with the best documentation ever so you find everything you<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/php-array-map-2-0/">Read more <span class="screen-reader-text">PHP: Array > Map 2.0</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big.png"><img width="1024" height="542" src="https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-1024x542.png" alt="" class="wp-image-752" srcset="https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-1024x542.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-300x159.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-768x406.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-100x53.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-150x79.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-200x106.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-450x238.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-600x318.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big-900x476.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/02/php-map-big.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure></div>



<p>The new 2.0 major release of the PHP map package is available which includes new methods and support for working with multi-dimensional arrays in an easy way. Additionally, it comes with the best documentation ever so you find everything you need quickly!</p>



<p>Instead of applying independent PHP functions on arrays, use the PHP Map object to stream array data through several methods to transform, order and shorten its elements until the result exactly conforms to your requirements, for example:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$data</span> <span class="sy0">=</span> <span class="br0">&#91;</span>
    <span class="br0">&#91;</span><span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Tom'</span><span class="sy0">,</span> <span class="st_h">'dep'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Dev'</span><span class="sy0">,</span> <span class="st_h">'qty'</span> <span class="sy0">=&gt;</span> <span class="nu0">30</span><span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="br0">&#91;</span><span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Bob'</span><span class="sy0">,</span> <span class="st_h">'dep'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Sales'</span><span class="sy0">,</span> <span class="st_h">'qty'</span> <span class="sy0">=&gt;</span> <span class="nu0">50</span><span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="br0">&#91;</span><span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Joe'</span><span class="sy0">,</span> <span class="st_h">'dep'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Dev'</span><span class="sy0">,</span> <span class="st_h">'qty'</span> <span class="sy0">=&gt;</span> <span class="nu0">10</span><span class="br0">&#93;</span>
<span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// get the person with the highest quantity in &quot;Dev&quot; department</span>
<span class="re0">$name</span> <span class="sy0">=</span> map<span class="br0">&#40;</span> <span class="re0">$data</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="me1">groupBy</span><span class="br0">&#40;</span> <span class="st_h">'dep'</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">only</span><span class="br0">&#40;</span> <span class="st_h">'Dev'</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="me1">flat</span><span class="br0">&#40;</span> <span class="nu0">1</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">col</span><span class="br0">&#40;</span> <span class="st_h">'name'</span><span class="sy0">,</span> <span class="st_h">'qty'</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="kw3">ksort</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">last</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>To get the result in one statement is easier and much more elegant than the traditional way in PHP. The PHP Map object is perfectly suited to work on result sets returned by relational databases. You can transform them until you get a collection that exactly fits for your template generating the HTML for the frontend.</p>



<p>The PHP Map package combines the best from Laravel and CakePHP collections, jQuery, Backbone.js, and Lodash in an easy to use PHP package for every PHP application.</p>



<h2>What&#8217;s new in PHP Map 2.0</h2>



<p>One of the biggest new feature is the ability to pass a path of keys as parameter to several PHP Map methods to work on nested arrays directly. Instead of writing own code for diving into multi-dimensional arrays, you can now use the available methods to e.g. get a value by using:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">map<span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'key'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'to'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'yes!'</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="br0">&#93;</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="me1">get</span><span class="br0">&#40;</span> <span class="st_h">'key/to/value'</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// returns &quot;yes!&quot;</span></pre></div></div></div></div></div></div></div>






<p></p>



<p>This also works for more advanced methods like <code>col()</code> to reindex an array by using a nested key:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$data</span> <span class="sy0">=</span> <span class="br0">&#91;</span>
    <span class="br0">&#91;</span><span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Tom'</span><span class="sy0">,</span> <span class="st_h">'addr'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'zip'</span> <span class="sy0">=&gt;</span> <span class="st_h">'12AB'</span><span class="sy0">,</span> <span class="st_h">'city'</span> <span class="sy0">=&gt;</span> <span class="st_h">'NY'</span><span class="br0">&#93;</span><span class="br0">&#93;</span><span class="sy0">,</span>
    <span class="br0">&#91;</span><span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Bob'</span><span class="sy0">,</span> <span class="st_h">'addr'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'zip'</span> <span class="sy0">=&gt;</span> <span class="st_h">'23WD'</span><span class="sy0">,</span> <span class="st_h">'city'</span> <span class="sy0">=&gt;</span> <span class="st_h">'LA'</span><span class="br0">&#93;</span><span class="br0">&#93;</span>
<span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$map</span> <span class="sy0">=</span> map<span class="br0">&#40;</span> <span class="re0">$data</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">col</span><span class="br0">&#40;</span> <span class="st_h">'name'</span><span class="sy0">,</span> <span class="st_h">'addr/zip'</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="co1">// ['12AB' =&gt; 'Tom', '23WD' =&gt; 'Bob']</span></pre></div></div></div></div></div></div></div>






<p>By default, a dot (&#8220;/&#8221;) is used as seperator between the array key names but you can change that for the current map using the <code>sep()</code> method:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$map</span> <span class="sy0">=</span> map<span class="br0">&#40;</span> <span class="re0">$data</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">sep</span><span class="br0">&#40;</span> <span class="st_h">'.'</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">col</span><span class="br0">&#40;</span> <span class="st_h">'name'</span><span class="sy0">,</span> <span class="st_h">'addr.zip'</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>If you want to use another seperator in all new PHP Map objects (existing ones will keep their separator), you can change the delimiter globally with the <code>delimiter()</code> method:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">Map<span class="sy0">::</span><span class="me2">delimiter</span><span class="br0">&#40;</span> <span class="st_h">','</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>It also returns the delimiter used before if you want to revert the used delimiter later in your code.</p>



<h2>Breaking changes in PHP Map 2.0</h2>



<p>The new major version contains a few breaking changes to avoid potential problems that came up in the past. You won&#8217;t be affected by most of them but you should have a look to prevent unexpected behaviour.</p>



<h3>New slash separator</h3>



<p>The most important change affects parameter values including slashes because they are now treated as path separators for nested arrays.</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$data</span> <span class="sy0">=</span> <span class="br0">&#91;</span>
    <span class="st_h">'item/id'</span> <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="sy0">,</span>
    <span class="st_h">'item/code'</span> <span class="sy0">=&gt;</span> <span class="st_h">'test'</span><span class="sy0">,</span>
    <span class="st_h">'item/name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Test'</span>
<span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
map<span class="br0">&#40;</span> <span class="re0">$data</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">col</span><span class="br0">&#40;</span> <span class="st_h">'item/code'</span><span class="sy0">,</span> <span class="st_h">'item/id'</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// 1.x</span>
<span class="br0">&#91;</span><span class="nu0">1</span> <span class="sy0">=&gt;</span> <span class="st_h">'test'</span><span class="br0">&#93;</span>
&nbsp;
<span class="co1">// 2.x</span>
<span class="br0">&#91;</span><span class="br0">&#93;</span>
<span class="co1">// use instead</span>
map<span class="br0">&#40;</span> <span class="re0">$data</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">sep</span><span class="br0">&#40;</span> <span class="st_h">'.'</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">col</span><span class="br0">&#40;</span> <span class="st_h">'item/code'</span><span class="sy0">,</span> <span class="st_h">'item/id'</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<h3>jQuery style method calls</h3>



<p>You can call methods of objects in a map like this:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="co1">// MyClass implements setStatus() (returning $this) and</span>
<span class="co1">// getCode() (initialized by constructor)</span>
&nbsp;
<span class="re0">$map</span> <span class="sy0">=</span> Map<span class="sy0">::</span><span class="me2">from</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
    <span class="st_h">'a'</span> <span class="sy0">=&gt;</span> <span class="kw2">new</span> MyClass<span class="br0">&#40;</span> <span class="st_h">'x'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="st_h">'b'</span> <span class="sy0">=&gt;</span> <span class="kw2">new</span> MyClass<span class="br0">&#40;</span> <span class="st_h">'y'</span> <span class="br0">&#41;</span>
<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$map</span><span class="sy0">-&gt;</span><span class="me1">setStatus</span><span class="br0">&#40;</span> <span class="nu0">1</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">getCode</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">toArray</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>Before, the objects had been checked if they really implement the <code>setStatus()</code> and <code>getCode()</code> methods.</p>



<p>To avoid returning an empty map if the method name is wrong or the called method is catched by the <code>__call()</code> magic method, this isn’t the case any more. If the method isn’t implemented by all objects, PHP generates a fatal error now for better error tracing.</p>



<h3>Second equals() parameter</h3>



<p>The <code>$assoc</code> parameter of the&nbsp;<a href="https://php-map.org/#equals"><code>equals()</code></a>&nbsp;method to compare keys too has been removed and now, you must use the&nbsp;<a href="https://php-map.org/#is"><code>is()</code></a>&nbsp;method instead:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="co1">// 1.x</span>
map<span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'one'</span> <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">equals</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'one'</span> <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw4">true</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// 2.x</span>
map<span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'one'</span> <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'one'</span> <span class="sy0">=&gt;</span> <span class="nu0">1</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<h3>New find() argument</h3>



<p>The&nbsp;<a href="https://php-map.org/#find"><code>find()</code></a>&nbsp;method now accepts a default value or exception object as second argument and the&nbsp;<code>$reverse</code>&nbsp;argument is at the third position now:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="co1">// 1.x</span>
Map<span class="sy0">::</span><span class="me2">from</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'a'</span><span class="sy0">,</span> <span class="st_h">'c'</span><span class="sy0">,</span> <span class="st_h">'e'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">find</span><span class="br0">&#40;</span> <span class="kw2">function</span><span class="br0">&#40;</span> <span class="re0">$value</span><span class="sy0">,</span> <span class="re0">$key</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="kw1">return</span> <span class="re0">$value</span> <span class="sy0">&gt;=</span> <span class="st_h">'b'</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="kw4">true</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// 2.x</span>
Map<span class="sy0">::</span><span class="me2">from</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'a'</span><span class="sy0">,</span> <span class="st_h">'c'</span><span class="sy0">,</span> <span class="st_h">'e'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">find</span><span class="br0">&#40;</span> <span class="kw2">function</span><span class="br0">&#40;</span> <span class="re0">$value</span><span class="sy0">,</span> <span class="re0">$key</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="kw1">return</span> <span class="re0">$value</span> <span class="sy0">&gt;=</span> <span class="st_h">'b'</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="sy0">,</span> <span class="kw4">null</span><span class="sy0">,</span> <span class="kw4">true</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<h3>Semantic change in groupBy()</h3>



<p>Before, items have been grouped by the key string itself if the key passed to&nbsp;<a href="https://php-map.org/#groupby"><code>groupBy()</code></a>&nbsp;didn’t exist. To offer easier checking and sorting of the keys, an empty string is used as key now:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1">Map<span class="sy0">::</span><span class="me2">from</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
    <span class="nu0">10</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'aid'</span> <span class="sy0">=&gt;</span> <span class="nu0">123</span><span class="sy0">,</span> <span class="st_h">'code'</span> <span class="sy0">=&gt;</span> <span class="st_h">'x-abc'</span><span class="br0">&#93;</span><span class="sy0">,</span>
<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">groupBy</span><span class="br0">&#40;</span> <span class="st_h">'xid'</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// 1.x</span>
<span class="br0">&#91;</span>
    <span class="st_h">'xid'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span>
        <span class="nu0">10</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'aid'</span> <span class="sy0">=&gt;</span> <span class="nu0">123</span><span class="sy0">,</span> <span class="st_h">'code'</span> <span class="sy0">=&gt;</span> <span class="st_h">'x-abc'</span><span class="br0">&#93;</span>
    <span class="br0">&#93;</span>
<span class="br0">&#93;</span>
&nbsp;
<span class="co1">// 2.x</span>
<span class="br0">&#91;</span>
    <span class="st_h">''</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span>
        <span class="nu0">10</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'aid'</span> <span class="sy0">=&gt;</span> <span class="nu0">123</span><span class="sy0">,</span> <span class="st_h">'code'</span> <span class="sy0">=&gt;</span> <span class="st_h">'x-abc'</span><span class="br0">&#93;</span>
    <span class="br0">&#93;</span>
<span class="br0">&#93;</span></pre></div></div></div></div></div></div></div>






<h3>Semantic change in offsetExists()</h3>



<p>The&nbsp;<a href="https://php-map.org/#offsetexists"><code>offsetExists()</code></a>&nbsp;method uses&nbsp;<code>isset()</code>&nbsp;instead of <code>array_key_exists()</code> now to be in line with typical PHP behavior. Thus, keys with NULL values are now treated differently:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$m</span> <span class="sy0">=</span> Map<span class="sy0">::</span><span class="me2">from</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'foo'</span> <span class="sy0">=&gt;</span> <span class="kw4">null</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// 1.x</span>
<span class="kw3">isset</span><span class="br0">&#40;</span> <span class="re0">$m</span><span class="br0">&#91;</span><span class="st_h">'foo'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// true</span>
&nbsp;
<span class="co1">// 2.x</span>
<span class="kw3">isset</span><span class="br0">&#40;</span> <span class="re0">$m</span><span class="br0">&#91;</span><span class="st_h">'foo'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// false</span></pre></div></div></div></div></div></div></div>






<h3>Renamed split() to explode()</h3>



<p>To avoid conflicts with the Laravel <code>split()</code> method and to be in line with the PHP&nbsp;<code>explode()</code>&nbsp;method, the static&nbsp;<code>Map::split()</code>&nbsp;method has been renamed to&nbsp;<code><a href="https://php-map.org/#explode">Map::explode()</a></code>.&nbsp;Also, the argument order has changed:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="co1">// 1.x</span>
Map<span class="sy0">::</span><span class="kw3">split</span><span class="br0">&#40;</span> <span class="st_h">'a,b,c'</span><span class="sy0">,</span> <span class="st_h">','</span> <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
<span class="co1">// 2.x</span>
Map<span class="sy0">::</span><span class="kw3">explode</span><span class="br0">&#40;</span> <span class="st_h">','</span><span class="sy0">,</span> <span class="st_h">'a,b,c'</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>



]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/php-array-map-2-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
