metaphone

Calculate the metaphone key of a string

&reftitle.description; `string` `metaphone` `string` `string` `int` `max_phonemes` 0

Calculates the metaphone key of `string`.

Similar to `soundex` metaphone creates the same key for similar sounding words. It's more accurate than `soundex` as it knows the basic rules of English pronunciation. The metaphone generated keys are of variable length.

Metaphone was developed by Lawrence Philips <lphilips at verity dot com>. It is described in ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

&reftitle.parameters;

`string`

- The input string.

`max_phonemes`

- This parameter restricts the returned metaphone key to `max_phonemes` characters in length. However, the resulting phonemes are always transcribed completely, so the resulting string length may be slightly longer than `max_phonemes`. The default value of `0` means no restriction.

&reftitle.returnvalues;

Returns the metaphone key as a string.

&reftitle.changelog;

&Version; | &Description;
8.0.0 | The function returned &false; on failure.

&reftitle.examples;

### `metaphone` basic example

    <?php
    var_dump(metaphone('programming'));
    var_dump(metaphone('programmer'));
    ?>

&example.outputs;

    string(7) "PRKRMNK"
    string(6) "PRKRMR"

### Using the `max_phonemes` parameter

    <?php
    var_dump(metaphone('programming', 5));
    var_dump(metaphone('programmer', 5));
    ?>

&example.outputs;

    string(5) "PRKRM"
    string(5) "PRKRM"

### Using the `max_phonemes` parameter

In this example, `metaphone` is advised to produce a string of five characters, but that would require to split the final phoneme (`'x'` is supposed to be transcribed to `'KS'`), so the function returns a string with six characters.

    <?php
    var_dump(metaphone('Asterix', 5));
    ?>

&example.outputs;

    string(6) "ASTRKS"