plejus/pluralize

Pluralize any English word. You can also check if word is in plural or singular form.

This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.

Maintainers

👁 plejus

Package info

github.com/plejus/pluralize

pkg:composer/plejus/pluralize

Statistics

Installs: 4 981

Dependents: 1

Suggesters: 0

Stars: 2

Open Issues: 1

1.0.0 2019-08-07 00:00 UTC

Requires

  • php: >=5.6.0

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT cc8602ad2e07e930aff04688b8db2bab2e78005e

inflectorinflectionsingularizepluralizewordspluralsingular

This package is auto-updated.

Last update: 2024-08-21 20:55:30 UTC


README

Pluralize and Singularize any English word. You can also check if word is in plural or singular form.

Module contains list of irregular and uncountable rules. You can also add your custom rules.

Installation

composer require plejus/pluralize

Usage

<?php

use plejus\PhpPluralize\Inflector;

$inflector = new Inflector();

$output = $inflector->plural("dog");
// output: "dogs"

$output = $inflector->singular("dogs");
// output: "dog"

$output = $inflector->isPlural("dogs");
// output: true

$output = $inflector->isSingular("dogs");
// output: false

$inflector->addIrregularRule('something', 'some things');
$output = $inflector->plural("something");
// output: "some things"


$inflector->addSingularRule('/singles$/i', 'singular');
$output = $inflector->singular("singles");
// output: "singular

Real Life Examples

Group some animal forum tags to help user find content

<?php

use plejus\PhpPluralize\Inflector;

$tags = [
 100 => "dog",
 101 => "parrot",
 102 => "dogs",
 103 => "monkeys",
 104 => "cats",
 105 => "cat",
 106 => "doggies",
];

$inflector = new Inflector();
$inflector->addSingularRule('/doggies$/i', 'dog');

$groups = [];

foreach ($tags as $id => $tag) {
 $correctTag = $inflector->isSingular($tag)
 ? $tag
 : $inflector->singular($tag);

 if (!array_key_exists($correctTag, $groups)) {
 $groups[$correctTag] = [];
 }

 $groups[$correctTag][] = $id;
}

/*
 * Output:
 * 
 * Array
 (
 [dog] => Array
 (
 [0] => 100
 [1] => 102
 [2] => 106
 )

 [parrot] => Array
 (
 [0] => 101
 )

 [monkey] => Array
 (
 [0] => 103
 )

 [cat] => Array
 (
 [0] => 104
 [1] => 105
 )
 )
 */

Display correct form of word

<?php

use plejus\PhpPluralize\Inflector;

$inflector = new Inflector();

for ($i = 1; $i <= 3; $i++) {
 echo "I have $i" . $inflector->pluralize("apple", $i);
}

/*
* Output:
* "I have 1 apple"
* "I have 2 apples"
* "I have 3 apples"
*/

License

MIT