<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.collator.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'collator.setstrength.php',
    1 => 'Collator::setStrength',
    2 => '照合強度を設定する',
  ),
  'up' => 
  array (
    0 => 'class.collator.php',
    1 => 'Collator',
  ),
  'prev' => 
  array (
    0 => 'collator.setattribute.php',
    1 => 'Collator::setAttribute',
  ),
  'next' => 
  array (
    0 => 'collator.sort.php',
    1 => 'Collator::sort',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/intl/collator/set-strength.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="collator.setstrength" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Collator::setStrength</h1>
  <h1 class="refname">collator_set_strength</h1>
  <p class="verinfo">(PHP 5 &gt;= 5.3.0, PHP 7, PHP 8, PECL intl &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">Collator::setStrength</span> -- <span class="refname">collator_set_strength</span> &mdash; <span class="dc-title">照合強度を設定する</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-collator.setstrength-description">
  <h3 class="title">説明</h3>
  <p class="para">
   オブジェクト指向型
  </p>
  <div class="methodsynopsis dc-description">
   <span class="modifier">public</span> <span class="methodname"><strong>Collator::setStrength</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$strength</code></span>): <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span></div>

  <p class="para rdfs-comment">
   手続き型
  </p>
  <div class="methodsynopsis dc-description"><span class="methodname"><strong>collator_set_strength</strong></span>(<span class="methodparam"><span class="type"><a href="class.collator.php" class="type Collator">Collator</a></span> <code class="parameter">$object</code></span>, <span class="methodparam"><span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$strength</code></span>): <span class="type"><a href="language.types.singleton.php" class="type true">true</a></span></div>

  <p class="para rdfs-comment">
   <a href="https://icu.unicode.org/" class="link external">&raquo;&nbsp;ICU</a>
   Collation Service は、多くの比較レベルをサポートしています
   (&quot;レベル&quot; という名前ですが、&quot;強度&quot; と呼ばれることもあります)。
   これらのカテゴリを用いることで、ICU は、
   各地域の規約にあわせた適切な文字列の並べ替えを正確に行えるようになります。
   また、各段階を選択して採用することで、
   テキスト内の文字列検索をさまざまな条件で行うことも可能になります。
  </p>
  <p class="para">
   <ol type="1">
    <li class="listitem">
     <p class="para"> 
      <em>第一段階 (Primary Level)</em>:
      一般に、これは元となる文字自体の違いを表すものとして使用します
      (たとえば &quot;a&quot; &lt; &quot;b&quot;)。これが、いちばん強い違いとなります。
      たとえば、辞書などではこれを用いてセクション分けしています。
      これは、 <code class="literal">level 1</code> の強度
      (level1 strength) ともいいます。
     </p>
    </li>
    <li class="listitem">
     <p class="para"> 
      <em>第二段階 (Secondary Level)</em>:
      文字のアクセント記号を、第二段階の違いとします
      (たとえば &quot;as&quot; &lt; &quot;às&quot; &lt; &quot;at&quot;)。
      言語によっては、その他の文字の違いも第二段階の違いとみなすこともあります。
      文字列のどこかで第一段階の違いがある場合、第二段階の違いは無視します。
      これは、 <code class="literal">level 2</code> の強度
      (level2 strength) ともいいます。
      <blockquote class="note"><p><strong class="note">注意</strong>: 
       <p class="para">
        注意: 言語によっては (たとえばデンマーク語)、
        アクセント記号は元の文字とは別の文字とみなすものもあります。
        しかし、たいていの言語では、
        アクセントなしの文字とアクセントつきの文字の違いは第二段階とみなします。
       </p>
      </p></blockquote>
     </p>
    </li>
    <li class="listitem">
     <p class="para"> 
      <em>第三段階 (Tertiary Level)</em>:
      大文字と小文字の違いを区別するのが第二段階の違いです
      (たとえば &quot;ao&quot; &lt; &quot;Ao&quot; &lt; &quot;aò&quot;)。
      さらに、ある文字とその派生形の違い(たとえば &quot;a&quot; and &quot;𝒶&quot;)
      も第三段階と判断します。さらに、カナの大文字と小文字の違い
      (訳注: たとえば &quot;や&quot; と &quot;ゃ&quot;) もこの段階になります。
      文字列のどこかで第一段階や第二段階の違いがある場合、
      第三段階の違いは無視します。
      これは、<code class="literal">level 3</code> の強度
      (level3 strength) ともいいます。
     </p>
    </li>
    <li class="listitem">
     <p class="para"> 
      <em>第四段階 (Quaternary Level)</em>:
      レベル 1 から 3 までで句読点を無視する場合 (&quot;句読点の無視&quot; を参照)、
      追加の段階を使用して句読点つきの単語となしの単語を区別します
      (たとえば &quot;ab&quot; &lt; &quot;a-b&quot; &lt; &quot;aB&quot;)。
      どこかに第一段階や第二段階、第三段階の違いがある場合、
      第四段階の違いは無視します。
      これは、 <code class="literal">level 4</code>
      の強度 (level4 strength) ともいいます。
      第四段階を使用するのは、句読点を無視する必要がある場合や
      日本語のテキスト (&quot;ひらがなの処理&quot; を参照) を処理する場合のみです。
     </p>
    </li>
    <li class="listitem">
     <p class="para"> 
      <em>一致段階 (Identical Level)</em>:
      それ以外のすべてのレベルで等しかった場合に、最後の手段として一致段階を用います。
      この段階で比較するのは、NFD 形式の文字列の Unicode コードポイントです。
      レベル 1 から 4 までで違いがない場合にのみ比較します。
      たとえば、ヘブライ語の朗誦記号 (cantillation mark) は、
      この段階でしか識別できません。
      この段階は慎重に使うようにしましょう。
      ふたつの文字列でコードポイントの値のみが違うなどということは、
      めったにないことだからです。
      この段階を使用すると、(ソートキーの強度が上がるのと同時に)
      インクリメンタルな比較やソートキーの生成のパフォーマンスが劇的に低下します。
      これは、<code class="literal">level 5</code>
      の強度 (level5 strength) ともいいます。
     </p>
    </li>
   </ol>
  </p>
  <p class="para">
   たとえば、「アクセントを無視」したり「アクセントと大文字小文字の区別を無視」
   したりしてテキストの検索を行いたいこともあります。
   ほぼすべての文字は第三段階までで識別できるので、
   大半のロケールではデフォルトの指定は第三段階となっています。
   しかし、場合によっては第四段階の強度を使用することになります。
   これを用いると、空白や句読点や記号など、
   他の強度では無視されるような違いも識別するようになります。
   文字の識別を非常に厳密に行うには、一致段階の強度を使用します
   (たとえばこれを使用すると、Mathematical Bold Small A と
   Mathematical Italic Small A が別の文字とみなされます)。
   しかし、第三段階を超える強度を使用すると、
   ソートキーが非常に長くなってしまい、
   また同じ文字列に対する比較処理も非常に遅くなってしまいます。
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-collator.setstrength-parameters">
  <h3 class="title">パラメータ</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">object</code></dt>
     <dd>
      <p class="para">
       <span class="classname"><a href="class.collator.php" class="classname">Collator</a></span> オブジェクト。
      </p>
     </dd>
    
    
     <dt><code class="parameter">strength</code></dt>
     <dd>
      <p class="para">設定する強度。</p>
      <p class="para">
        以下のいずれかです。
       <ul class="itemizedlist">
        <li class="listitem">
         <p class="para">
          <strong><code><a href="class.collator.php#collator.constants.primary">Collator::PRIMARY</a></code></strong>
         </p>
        </li>
        <li class="listitem">
         <p class="para">
          <strong><code><a href="class.collator.php#collator.constants.secondary">Collator::SECONDARY</a></code></strong>
         </p>
        </li>
        <li class="listitem">
         <p class="para">
          <strong><code><a href="class.collator.php#collator.constants.tertiary">Collator::TERTIARY</a></code></strong>
         </p>
        </li>
        <li class="listitem">
         <p class="para">
          <strong><code><a href="class.collator.php#collator.constants.quaternary">Collator::QUATERNARY</a></code></strong>
         </p>
        </li>
        <li class="listitem">
         <p class="para">
          <strong><code><a href="class.collator.php#collator.constants.identical">Collator::IDENTICAL</a></code></strong>
         </p>
        </li>
        <li class="listitem">
         <p class="para">
          <strong><code><a href="class.collator.php#collator.constants.default-strength">Collator::DEFAULT_STRENGTH</a></code></strong>
         </p>
        </li>
       </ul>
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-collator.setstrength-returnvalues">
  <h3 class="title">戻り値</h3>
  <p class="para">
   常に <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> を返します。
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-collator.setstrength-examples">
  <h3 class="title">例</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>例1 <span class="function"><strong>collator_set_strength()</strong></span> の例</strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$arr  </span><span style="color: #007700">= array( </span><span style="color: #DD0000">'aò'</span><span style="color: #007700">, </span><span style="color: #DD0000">'Ao'</span><span style="color: #007700">, </span><span style="color: #DD0000">'ao' </span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$coll </span><span style="color: #007700">= </span><span style="color: #0000BB">collator_create</span><span style="color: #007700">( </span><span style="color: #DD0000">'en_US' </span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// デフォルトの強度で配列を並べ替えます<br /></span><span style="color: #0000BB">collator_sort</span><span style="color: #007700">( </span><span style="color: #0000BB">$coll</span><span style="color: #007700">, </span><span style="color: #0000BB">$arr </span><span style="color: #007700">); <br /></span><span style="color: #0000BB">var_export</span><span style="color: #007700">( </span><span style="color: #0000BB">$arr </span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// 第一段階の強度で配列を並べ替えます<br /></span><span style="color: #0000BB">collator_set_strength</span><span style="color: #007700">( </span><span style="color: #0000BB">$coll</span><span style="color: #007700">, </span><span style="color: #0000BB">Collator</span><span style="color: #007700">::</span><span style="color: #0000BB">PRIMARY </span><span style="color: #007700">);<br /></span><span style="color: #0000BB">collator_sort</span><span style="color: #007700">( </span><span style="color: #0000BB">$coll</span><span style="color: #007700">, </span><span style="color: #0000BB">$arr </span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_export</span><span style="color: #007700">( </span><span style="color: #0000BB">$arr </span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>上の例の出力は以下となります。</p></div>
    <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">array (
  0 =&gt; &#039;ao&#039;,
  1 =&gt; &#039;Ao&#039;,
  2 =&gt; &#039;aò&#039;,
)
array (
  0 =&gt; &#039;aò&#039;,
  1 =&gt; &#039;Ao&#039;,
  2 =&gt; &#039;ao&#039;,
)</pre>
</div>
    </div>
   </div>
  </p>
 </div>


 <div class="refsect1 seealso" id="refsect1-collator.setstrength-seealso">
  <h3 class="title">参考</h3>
  <p class="para">
   <ul class="simplelist">
    <li><a href="class.collator.php#intl.collator-constants" class="link"><span class="classname"><a href="class.collator.php" class="classname">Collator</a></span> の定数</a></li>
    <li><span class="function"><a href="collator.getstrength.php" class="function" rel="rdfs-seeAlso">collator_get_strength()</a> - 現在の照合強度を取得する</span></li>
   </ul>
  </p>
 </div>

</div><?php manual_footer($setup); ?>