json_last_error
Introduction
Other Basic Extensions
PHP Manual

# Judy Arrays

Table of Contents

- Introduction
- Installing/Configuring
  - Requirements
  - Installation
  - Runtime Configuration
  - Resource Types
- Judy — The Judy class
  - 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
- Judy Functions
  - judy_type — Return the type of a Judy array
  - judy_version — Return or print the current PHP Judy version

# The Judy class

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