<?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>配列 &#8211; PHPプログラミングの教科書 [php1st.com]</title>
	<atom:link href="https://php1st.com/tag/%e9%85%8d%e5%88%97/feed" rel="self" type="application/rss+xml" />
	<link>https://php1st.com</link>
	<description>気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。</description>
	<lastBuildDate>Tue, 05 Sep 2017 02:55:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>array_pushでは配列に追加する要素のキーは指定できない</title>
		<link>https://php1st.com/1865</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 17 Sep 2014 04:33:50 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1865</guid>

					<description><![CDATA[array_push関数は配列の最後に要素を追加します。 ○実行結果 Array ( [0] => 東京 [1] => 千葉 [2] => 神奈川 [3] => 埼玉 ) 「&#8221;key&#8221; => &# [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>array_push関数は配列の最後に要素を追加します。</p>
<pre class="brush: php; title: 配列に要素を追加する; notranslate">
&lt;?php
$ar = array(&quot;東京&quot;, &quot;千葉&quot;, &quot;神奈川&quot;);
array_push($ar, &quot;埼玉&quot;);
print_r($ar);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
Array ( [0] => 東京 [1] => 千葉 [2] => 神奈川 [3] => 埼玉 ) 
</pre>
<p>「&#8221;key&#8221; => &#8220;value&#8221;」の形式でキーを指定して値を追加することはできません。次のコードはエラーになります。</p>
<pre class="brush: php; title: 追加する要素のキーは指定できない（エラーになる）; notranslate">
&lt;?php
$ar = array(&quot;t&quot;=&gt;&quot;東京&quot;, &quot;c&quot;=&gt;&quot;千葉&quot;, &quot;k&quot;=&gt;&quot;神奈川&quot;);
array_push($ar, &quot;s&quot;=&gt;&quot;埼玉&quot;);
print_r($ar);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
 Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) …略…
</pre>
<p>この場合、array_push関数を使う代わりに「$ar[&#8220;key&#8221;] = value;」で追加する方法などがあります。</p>
<pre class="brush: php; title: キーと値を指定して配列要素を追加する; notranslate">
&lt;?php
$ar = array(&quot;t&quot;=&gt;&quot;東京&quot;, &quot;c&quot;=&gt;&quot;千葉&quot;, &quot;k&quot;=&gt;&quot;神奈川&quot;);
$ar&#x5B;&quot;s&quot;] = &quot;埼玉&quot;;
print_r($ar);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
Array ( [t] => 東京  => 千葉 [k] => 神奈川 [s] => 埼玉 ) 
</pre>
<div class="pt">
速さの面でもarray_push関数よりも「$ar[&#8220;key&#8221;] = value;」が有利です。<br />
<a href="http://php1st.com/1392/" title="array_push関数による配列要素の追加は$array[]より遅い">array_push関数による配列要素の追加は$array[]より遅い</a>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>配列をランダムに並べ替える（おみくじ・抽選プログラムを例に）</title>
		<link>https://php1st.com/1858</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 17 Sep 2014 03:19:44 +0000</pubDate>
				<category><![CDATA[PHPサンプルコード]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1858</guid>

					<description><![CDATA[配列要素をランダムな順番に並べ替えて表示したり、1つまたは複数の要素をランダムに取り出したいことがあります。 配列をランダムに並べ替える（おみくじ） 配列をランダム順に並べ替えるには、shuffle関数が役立ちます。簡単 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>配列要素をランダムな順番に並べ替えて表示したり、1つまたは複数の要素をランダムに取り出したいことがあります。</p>
<h2>配列をランダムに並べ替える（おみくじ）</h2>
<p>配列をランダム順に並べ替えるには、shuffle関数が役立ちます。簡単なおみくじの例を紹介します。定義した配列をshuffle関数でシャッフル（ランダム順に並べ替え）した後、先頭の要素を表示しています｡</p>
<pre class="brush: php; highlight: [3]; title: おみくじ（配列シャッフルの例）; notranslate">
&lt;?php
$ar = array(&quot;大吉&quot;, &quot;中吉&quot;, &quot;小吉&quot;, &quot;凶&quot;);
shuffle($ar);
echo $ar&#x5B;0];
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
大吉
</pre>
<p>本当のおみくじは「凶が3割、大吉が2割」のように重みがついています。上記の配列は各要素が同じ確率で表示されますが、重みを付けるなら次のように要素数を増やす方法があります。</p>
<pre class="brush: php; highlight: [2]; title: 配列要素の出現率に重みを付ける; notranslate">
&lt;?php
$ar = array(&quot;大吉&quot;, &quot;中吉&quot;, &quot;小吉&quot;, &quot;凶&quot;, &quot;凶&quot;, &quot;凶&quot;);
shuffle($ar);
echo $ar&#x5B;0];
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
凶
</pre>
<h2>配列インデックスをランダムに取得する（抽選プログラム）</h2>
<p>配列をシャッフルする代わりに配列のインデックスをランダムに取得する場合はarray_rand関数を使います。</p>
<pre class="brush: php; highlight: [3]; title: 配列インデックスをランダムに取得する; notranslate">
&lt;?php
$ar = array(&quot;大吉&quot;, &quot;中吉&quot;, &quot;小吉&quot;, &quot;凶&quot;);
$idx = array_rand($ar);
echo $ar&#x5B;$idx];
?&gt;
</pre>
<p>ここでは、ランダムに取得したインデックスを使って、その要素を表示しています｡</p>
<p>○実行結果</p>
<pre class="res">
大吉
</pre>
<p>2番目のパラメータに個数を指定すると複数のインデックスをランダムに取得できます。大勢の応募者からランダムに何人かの当選者を選ぶ抽選プログラムにも活用できます。</p>
<pre class="brush: php; highlight: [3]; title: ランダムに2人を選ぶ抽選プログラム; notranslate">
&lt;?php
$ar = array(&quot;田中次郎&quot;, &quot;鈴木一郎&quot;, &quot;高橋史郎&quot;, &quot;小林一郎&quot;);
$idx = array_rand($ar, 2);

$temp = &quot;当選は次の方です。&lt;br /&gt;&quot;;
foreach ($idx as $key) {
    $temp .= $ar&#x5B;$key] . &quot;&lt;br /&gt;&quot;;
}
echo $temp;
?&gt;
</pre>
<p>もちろん、実行ごとに当選者は変わります。</p>
<p>○実行結果</p>
<pre class="res">
当選は次の方です。
鈴木一郎
小林一郎
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>配列検索で正規表現を使う（in_arrayの代わりにpreg_grep）</title>
		<link>https://php1st.com/1845</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Wed, 17 Sep 2014 00:35:18 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1845</guid>

					<description><![CDATA[配列に指定要素が含まれるか検索する定番の関数がin_array関数です。以下は配列に「田中次郎」が含まれるか検索しています。 &#60;?php $array = array(&#34;鈴木一郎&#34;, &#038;quot [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>配列に指定要素が含まれるか検索する定番の関数がin_array関数です。以下は配列に「田中次郎」が含まれるか検索しています。</p>
<pre class="brush: php; highlight: [3]; title: in_arrayによる配列検索; notranslate">
&lt;?php
$array = array(&quot;鈴木一郎&quot;, &quot;田中次郎&quot;, &quot;高橋史郎&quot;);
if (in_array(&quot;田中次郎&quot;, $array)) {
    echo &quot;存在します&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
存在します
</pre>
<p>in_array関数では検索する指定文字列に正規表現を使うことができません。<b>正規表現を使って配列検索を行う場合はpreg_grep関数</b>が役立ちます。</p>
<pre class="brush: php; highlight: [3]; title: 正規表現を使った配列要素の検索; notranslate">
&lt;?php
$array = array(&quot;鈴木一郎&quot;, &quot;田中次郎&quot;, &quot;高橋史郎&quot;);
if (preg_grep(&quot;/^田中/&quot;, $array)) {
    echo &quot;存在します&quot;;
}
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
存在します
</pre>
<p>この例では「正規表現が使えるin_array関数」のイメージで配列要素の存在チェックのためにpreg_grep関数を使っていますが、preg_grep関数の戻り値はtrueまたはfalseのboolではなく、マッチした配列要素です。</p>
<pre class="brush: php; title: マッチした要素を返すpreg_grep関数; notranslate">
&lt;?php
$array = array(&quot;鈴木一郎&quot;, &quot;田中次郎&quot;, &quot;高橋史郎&quot;);
print_r(preg_grep(&quot;/^田中/&quot;, $array));
?&gt;
</pre>
<p>次のように、マッチした要素が返されます。</p>
<p>○実行結果</p>
<pre class="res">
Array ( [1] => 田中次郎 )
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>array_mergeによる配列結合で数値インデックスが変わってしまうとき</title>
		<link>https://php1st.com/1840</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 16 Sep 2014 23:55:32 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1840</guid>

					<description><![CDATA[2つ以上の配列を結合する関数にarray_mergeがありますが、この関数では結合する配列の数値インデックスを0から始まるように新たに割り当てる仕様になっています。 PHPマニュアル：array_merge 結合する配列 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>2つ以上の配列を結合する関数にarray_mergeがありますが、この関数では結合する配列の<b>数値インデックスを0から始まるように</b>新たに割り当てる仕様になっています。</p>
<p><a href="http://jp1.php.net/manual/ja/function.array-merge.php" target="_blank">PHPマニュアル：array_merge</a></p>
<p>結合する配列で明示的に数値インデックスが指定されている場合、意図しない値に変わってしまう場合があるので注意が必要です。</p>
<pre class="brush: php; highlight: [4]; title: array_mergeによる配列の結合; notranslate">
&lt;?php
$ar1 = array(&quot;1&quot;=&gt;&quot;鈴木&quot;, &quot;2&quot;=&gt;&quot;田中&quot;);
$ar2 = array(&quot;3&quot;=&gt;&quot;高橋&quot;, &quot;4&quot;=&gt;&quot;小林&quot;);
print_r(array_merge($ar1, $ar2));
?&gt;
</pre>
<p>上記の配列では1から始まる数値インデックスが明示的に指定されていますが実行後は<b>0から始まる連番</b>が新たに割り振られています。</p>
<p>○実行結果</p>
<pre class="res">
Array ( [0] => 鈴木 [1] => 田中 [2] => 高橋 [3] => 小林 ) 
</pre>
<div class="pt">
文字のインデックスは保持されますが、同じインデックスは上書きされます。<br />
<a href="http://php1st.com/1382/" title="array_merge関数と配列結合演算子「+」による重複キーの扱いの違い">array_merge関数と配列結合演算子「+」による重複キーの扱いの違い</a>
</div>
<p>数値インデックスを維持したまま配列を結合する場合は配列結合演算子「+」を使います。</p>
<pre class="brush: php; highlight: [4]; title: 数値インデックスを維持して配列を結合; notranslate">
&lt;?php
$ar1 = array(&quot;1&quot;=&gt;&quot;鈴木&quot;, &quot;2&quot;=&gt;&quot;田中&quot;);
$ar2 = array(&quot;3&quot;=&gt;&quot;高橋&quot;, &quot;4&quot;=&gt;&quot;小林&quot;);
print_r($ar1 + $ar2);
?&gt;
</pre>
<p>○実行結果</p>
<pre class="res">
Array ( [1] => 鈴木 [2] => 田中 [3] => 高橋 [4] => 小林 ) 
</pre>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>in_array関数による配列要素の存在チェックがうまくいかない</title>
		<link>https://php1st.com/1584</link>
		
		<dc:creator><![CDATA[西沢直木]]></dc:creator>
		<pubDate>Tue, 11 Jun 2013 12:13:04 +0000</pubDate>
				<category><![CDATA[PHP関数]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">http://php1st.com/?p=1584</guid>

					<description><![CDATA[in_array関数は、配列に指定値が含まれるか調べる関数ですが、大文字と小文字を区別するため、配列に含まれる「Tokyo」を「tokyo」で検索するとうまくいきません。 &#60;?php $ar = array(&#038;qu [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>in_array関数は、配列に指定値が含まれるか調べる関数ですが、<strong>大文字と小文字を区別</strong>するため、配列に含まれる「Tokyo」を「tokyo」で検索するとうまくいきません。</p>
<pre class="brush: php; highlight: [4]; title: 配列要素の存在チェックがうまくいかない; notranslate">
&lt;?php
$ar = array(&quot;Tokyo&quot;, &quot;Chiba&quot;, &quot;Kanagawa&quot;);

if (in_array(&quot;tokyo&quot;, $ar)) {
    echo &quot;配列に含まれています。&quot;;
}
?&gt;
</pre>
<pre class="brush: php; highlight: [4]; title: 大文字と小文字を区別すればうまくいく; notranslate">
&lt;?php
$ar = array(&quot;Tokyo&quot;, &quot;Chiba&quot;, &quot;Kanagawa&quot;);

if (in_array(&quot;Tokyo&quot;, $ar)) {
    echo &quot;配列に含まれています。&quot;;
}
?&gt;
</pre>
<div id="attachment_1585" style="width: 301px" class="wp-caption alignnone"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-1585" src="http://php1st.com/wp-content/uploads/2013/06/001.png" alt="配列要素の存在チェック" title="配列要素の存在チェック" width="291" height="187" class="size-full wp-image-1585" /><p id="caption-attachment-1585" class="wp-caption-text">配列要素の存在チェック</p></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
