Exemplo n.º 1
0
 /**
  * Tells how many occurrences of a specified value there are in a map.
  *
  * You can use your own comparator for the search, but the default comparator has got you covered when searching
  * for scalar values, such as `string`, `int`, `float`, and `bool`. And the default comparator is smart enough to
  * know how to compare objects of those classes that conform to the IEquality or IEqualityAndOrder interface
  * (static or not), including CUStringObject, CArrayObject, CMapObject, CTime etc. See the
  * [CComparator](CComparator.html) class for more on this.
  *
  * @param  mixed $value The searched value.
  * @param  callable $comparator **OPTIONAL. Default is** `CComparator::EQUALITY`. The function or method to be
  * used for the comparison of values while searching. If this parameter is provided, the comparator should take two
  * parameters, with the first parameter being a value from the map and the second parameter being the searched
  * value, and return `true` if the two values are equal and `false` otherwise.
  *
  * @return int The number of such values in the map.
  *
  * @link   CComparator.html CComparator
  */
 public function countValue($value, $comparator = CComparator::EQUALITY)
 {
     return CMap::countValue($this->m_map, $value, $comparator);
 }
Exemplo n.º 2
0
 public function testCountValue()
 {
     $map = ["one" => "a", "two" => "c", "three" => "b", "four" => "c", "five" => "d", "six" => "e", "seven" => "c", "eight" => "c", "nine" => "f", "ten" => "g", "eleven" => "h", "twelve" => "c"];
     // Using the default comparator.
     $this->assertTrue(CMap::countValue($map, "c") == 5);
     // Using a custom comparator.
     $comparator = function ($string0, $string1) {
         return CString::toLowerCase($string0) === CString::toLowerCase($string1);
     };
     $this->assertTrue(CMap::countValue($map, "C", $comparator) == 5);
 }