# The Judy class

(PECL judy >= 0.1.1)

## Introduction

The Judy class implements the ArrayAccess interface and the Iterator interface. This class, once instantiated, can be accessed like a PHP array.

A PHP Judy object (or Judy Array) can be one of the following type :

- Judy::BITSET
- Judy::INT_TO_INT
- Judy::INT_TO_MIXED
- Judy::STRING_TO_INT
- Judy::STRING_TO_MIXED

Example #1 Judy array example

`<?php
$judy = new Judy(Judy::INT_TO_MIXED);
$judy[1] = "one";
$judy[2] = array('a', 'b', 'c');
$judy[3] = new Judy(Judy::BITSET);
?>`

## Class synopsis

Judy implements ArrayAccess , Iterator {
/* Constants */
const integer BITSET = 1 ;
const integer INT_TO_INT = 2 ;
const integer INT_TO_MIXED = 3 ;
const integer STRING_TO_INT = 4 ;
const integer STRING_TO_MIXED = 5 ;
/* Methods */
public byCount ( int `$nth_index` ) : int
public __construct ( int `$judy_type` )
public count ([ int `$index_start` = 0 [, int `$index_end` = -1 ]] ) : int
public __destruct ( void ) : void
public first ([ mixed `$index` ] ) : mixed
public firstEmpty ([ mixed `$index` = 0 ] ) : int
public free ( void ) : int
public getType ( void ) : int
public last ([ string `$index` ] ) : void
public lastEmpty ([ int `$index` = -1 ] ) : int
public memoryUsage ( void ) : int
public next ( mixed `$index` ) : mixed
public nextEmpty ( int `$index` ) : int
public offsetExists ( mixed `$offset` ) : bool
public offsetGet ( mixed `$offset` ) : mixed
public offsetSet ( mixed `$offset` , mixed `$value` ) : bool
public offsetUnset ( mixed `$offset` ) : bool
public prev ( mixed `$index` ) : mixed
public prevEmpty ( mixed `$index` ) : int
public size ( void ) : void
}

## Predefined Constants

`Judy::BITSET`

  Define the Judy Array as a Bitset with keys as Integer and Values as a Boolean

`Judy::INT_TO_INT`

  Define the Judy Array with key/values as Integer, and Integer only.

`Judy::INT_TO_MIXED`

  Define the Judy Array with keys as Integer and Values of any type.

`Judy::STRING_TO_INT`

  Define the Judy Array with keys as a String and Values as Integer, and Integer only.

`Judy::STRING_TO_MIXED`

  Define the Judy Array with keys as a String and Values of any type.

## Table of Contents

- Judy::byCount — Locate the Nth index present in the Judy array
- Judy::__construct — Construct a new Judy object
- Judy::count — Count the number of elements in the Judy array
- Judy::__destruct — Destruct a Judy object
- Judy::first — Search for the first index in the Judy array
- Judy::firstEmpty — Search for the first absent index in the Judy array
- Judy::free — Free the entire Judy array
- Judy::getType — Return the type of the current Judy array
- Judy::last — Search for the last index in the Judy array
- Judy::lastEmpty — Search for the last absent index in the Judy array
- Judy::memoryUsage — Return the memory used by the Judy array
- Judy::next — Search for the next index in the Judy array
- Judy::nextEmpty — Search for the next absent index in the Judy array
- Judy::offsetExists — Whether a offset exists
- Judy::offsetGet — Offset to retrieve
- Judy::offsetSet — Offset to set
- Judy::offsetUnset — Offset to unset
- Judy::prev — Search for the previous index in the Judy array
- Judy::prevEmpty — Search for the previous absent index in the Judy array
- Judy::size — Return the size of the current Judy array