数组

array_change_key_case

<?php

var_dump(array_change_key_case([2, 4, 5]));                                    // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_change_key_case(['foo' => 'cat', 'bar' => 'dog']));             // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }
var_dump(array_change_key_case(['foo' => 'cat', 'bar' => 'dog'], CASE_LOWER)); // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }
var_dump(array_change_key_case(['foo' => 'cat', 'bar' => 'dog'], CASE_UPPER)); // array(2) { ["FOO"]=> string(3) "cat" ["BAR"]=> string(3) "dog" }
var_dump(array_change_key_case(['foo' => 'cat', 'FOO' => 'dog'], CASE_LOWER)); // array(1) { ["foo"]=> string(3) "dog" }
var_dump(array_change_key_case(['foo' => 'cat', 'FOO' => 'dog'], CASE_UPPER)); // array(1) { ["FOO"]=> string(3) "dog" }

array_chunk

<?php

var_dump(array_chunk([2, 4, 5], 2));                              // array(2) { [0]=> array(2) { [0]=> int(2) [1]=> int(4) } [1]=> array(1) { [0]=> int(5) } }
var_dump(array_chunk(['foo' => 'cat', 'bar' => 'dog'], 1));       // array(2) { [0]=> array(1) { [0]=> string(3) "cat" } [1]=> array(1) { [0]=> string(3) "dog" } }
var_dump(array_chunk(['foo' => 'cat', 'bar' => 'dog'], 1, true)); // array(2) { [0]=> array(1) { ["foo"]=> string(3) "cat" } [1]=> array(1) { ["bar"]=> string(3) "dog" } }

array_column

<?php

var_dump(array_column([[2], [4], [5]], 0));                                                               // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_column([['id' => 2135, 'name' => 'cat'], ['id' => 3245, 'name' => 'dog']], 'name'));       // array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" }
var_dump(array_column([['id' => 2135, 'name' => 'cat'], ['id' => 3245, 'name' => 'dog']], 'name', 'id')); // array(2) { [2135]=> string(3) "cat" [3245]=> string(3) "dog" }
var_dump(array_column([['id' => 2135, 'name' => 'cat'], ['id' => 3245, 'name' => 'dog']], null));         // array(2) { [0]=> array(2) { ["id"]=> int(2135) ["name"]=> string(3) "cat" } [1]=> array(2) { ["id"]=> int(3245) ["name"]=> string(3) "dog" } }
var_dump(array_column([['id' => 2135, 'name' => 'cat'], ['id' => 3245, 'name' => 'dog']], null, 'id'));   // array(2) { [2135]=> array(2) { ["id"]=> int(2135) ["name"]=> string(3) "cat" } [3245]=> array(2) { ["id"]=> int(3245) ["name"]=> string(3) "dog" } }

array_combine

<?php

var_dump(array_combine([0, 1, 2], [2, 4, 5]));               // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_combine([0, 0, 0], [2, 4, 5]));               // array(1) { [0]=> int(5) }
var_dump(array_combine(['foo', 'bar'], ['cat', 'dog']));     // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }
var_dump(array_combine(['foo', 'bar'], [['cat'], ['dog']])); // array(2) { ["foo"]=> array(1) { [0]=> string(3) "cat" } ["bar"]=> array(1) { [0]=> string(3) "dog" } }

array_count_values

<?php

var_dump(array_count_values(['foo', 'bar']));               // array(2) { ["foo"]=> int(1) ["bar"]=> int(1) }
var_dump(array_count_values(['foo', 'bar', 'FOO', 'BAR'])); // array(4) { ["foo"]=> int(1) ["bar"]=> int(1) ["FOO"]=> int(1) ["BAR"]=> int(1) }
var_dump(array_count_values([0, 1, 2, '2']));               // array(3) { [0]=> int(1) [1]=> int(1) [2]=> int(2) }

array_diff_assoc

<?php

var_dump(array_diff_assoc([2, 4, 5], [2, 4, 5]));                                                                                   // array(0) { }
var_dump(array_diff_assoc([2, 4, 5], [2]));                                                                                         // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_assoc([2, 4, 5], ['2', '04', '05']));                                                                           // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_assoc(['foo' => 'cat'], ['bar' => 'dog']));                                                                     // array(1) { ["foo"]=> string(3) "cat" }
var_dump(array_diff_assoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'])); // array(0) { }

array_diff_key

<?php

var_dump(array_diff_key([2, 4, 5], [2, 4, 5]));                                                                                   // array(0) { }
var_dump(array_diff_key([2, 4, 5], [2]));                                                                                         // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_key([2, 4, 5], ['0' => 'cat', 'bar' => 'dog']));                                                              // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_key(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'], ['foo' => 0, 'bar' => 1]));                            // array(1) { ["baz"]=> string(4) "bird" }
var_dump(array_diff_key(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'])); // array(0) { }

array_diff_uassoc

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_diff_uassoc([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(0) { }
var_dump(array_diff_uassoc([2, 4, 5], [2], 'foo'));                                                                                         // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_uassoc([2, 4, 5], ['0' => '2', 'bar' => 'dog'], 'foo'));                                                                // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_uassoc(['foo' => 'cat'], ['bar' => 'dog'], 'foo'));                                                                     // array(1) { ["foo"]=> string(3) "cat" }
var_dump(array_diff_uassoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_diff_ukey

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_diff_ukey([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(0) { }
var_dump(array_diff_ukey([2, 4, 5], [2], 'foo'));                                                                                         // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_ukey([2, 4, 5], ['0' => 'cat', 'bar' => 'dog'], 'foo'));                                                              // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff_ukey(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'], ['foo' => 0, 'bar' => 1], 'foo'));                            // array(1) { ["baz"]=> string(4) "bird" }
var_dump(array_diff_ukey(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_diff

<?php

var_dump(array_diff([2, 4, 5], [2, 4, 5]));    // array(0) { }
var_dump(array_diff([2, 4, 5], ['2']));        // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff([2, 4, 5, 2], [0, 1, 2])); // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_diff([2, 4, 5], [0], [2]));     // array(2) { [1]=> int(4) [2]=> int(5) }

array_fill_keys

<?php

var_dump(array_fill_keys([2, 4, 5], 0));                                  // array(3) { [2]=> int(0) [4]=> int(0) [5]=> int(0) }
var_dump(array_fill_keys(['foo', 'bar', 'baz'], 'cat'));                  // array(3) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "cat" ["baz"]=> string(3) "cat" }
var_dump(array_fill_keys(['foo', 'bar', 'baz'], ['cat', 'dog', 'bird'])); // array(3) { ["foo"]=> array(3) { [0]=> string(3) "cat" [1]=> string(3) "dog" [2]=> string(4) "bird" } ["bar"]=> array(3) { [0]=> string(3) "cat" [1]=> string(3) "dog" [2]=> string(4) "bird" } ["baz"]=> array(3) { [0]=> string(3) "cat" [1]=> string(3) "dog" [2]=> string(4) "bird" } }

array_fill

<?php

var_dump(array_fill(0, 3, 0));                   // array(3) { [0]=> int(0) [1]=> int(0) [2]=> int(0) }
var_dump(array_fill(2, 3, 0));                   // array(3) { [2]=> int(0) [3]=> int(0) [4]=> int(0) }
var_dump(array_fill(-2, 3, 0));                  // array(3) { [-2]=> int(0) [0]=> int(0) [1]=> int(0) }
var_dump(array_fill(0, 3, array_fill(0, 3, 0))); // array(3) { [0]=> array(3) { [0]=> int(0) [1]=> int(0) [2]=> int(0) } [1]=> array(3) { [0]=> int(0) [1]=> int(0) [2]=> int(0) } [2]=> array(3) { [0]=> int(0) [1]=> int(0) [2]=> int(0) } }

array_filter

<?php

/**
 * Filter odd number.
 *
 * @param  int    $value
 * @return bool
 */
function foo(int $value): bool
{
    return ($value & 1);
}

/**
 * Filter even number.
 *
 * @param  int    $value
 * @return bool
 */
function bar(int $value): bool
{
    return !($value & 1);
}

/**
 * Filter the specified value and key.
 *
 * @param  int    $value
 * @param  int    $key
 * @return bool
 */
function baz(int $value, int $key): bool
{
    return ($value == 2 && $key == 0);
}

var_dump(array_filter([2, 4, 5]));                               // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_filter(['foo', 0, 0.0, '0', '', []]));            // array(1) { [0]=> string(3) "foo" }
var_dump(array_filter([2, 4, 5], 'foo'));                        // array(1) { [2]=> int(5) }
var_dump(array_filter([2, 4, 5], 'bar'));                        // array(2) { [0]=> int(2) [1]=> int(4) }
var_dump(array_filter([2, 4, 5], 'foo', ARRAY_FILTER_USE_KEY));  // array(1) { [1]=> int(4) }
var_dump(array_filter([2, 4, 5], 'bar', ARRAY_FILTER_USE_KEY));  // array(2) { [0]=> int(2) [2]=> int(5) }
var_dump(array_filter([2, 4, 5], 'baz', ARRAY_FILTER_USE_BOTH)); // array(1) { [0]=> int(2) }

array_flip

<?php

var_dump(array_flip([2, 4, 5]));                                         // array(3) { [2]=> int(0) [4]=> int(1) [5]=> int(2) }
var_dump(array_flip(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'])); // array(3) { ["cat"]=> string(3) "foo" ["dog"]=> string(3) "bar" ["bird"]=> string(3) "baz" }
var_dump(array_flip([2, 4, 5, '2', '4', '5']));                          // array(3) { [2]=> int(3) [4]=> int(4) [5]=> int(5) }

array_intersect_assoc

<?php

var_dump(array_intersect_assoc([2, 4, 5], [2, 4, 5]));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_intersect_assoc([2, 4, 5], [2]));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_intersect_assoc([2, 4, 5], ['2', '04', '05']));                                                                           // array(1) { [0]=> int(2) }
var_dump(array_intersect_assoc(['foo' => 'cat'], ['bar' => 'dog']));                                                                     // array(0) { }
var_dump(array_intersect_assoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'])); // array(0) { }

array_intersect_key

<?php

var_dump(array_intersect_key([2, 4, 5], [2, 4, 5]));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_intersect_key([2, 4, 5], [2]));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_intersect_key([2, 4, 5], ['0' => 'cat', 'bar' => 'dog']));                                                              // array(1) { [0]=> int(2) }
var_dump(array_intersect_key(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'], ['foo' => 0, 'bar' => 1]));                            // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }
var_dump(array_intersect_key(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'])); // array(0) { }

array_intersect_uassoc

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_intersect_uassoc([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_intersect_uassoc([2, 4, 5], [2], 'foo'));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_intersect_uassoc([2, 4, 5], ['0' => '2', 'bar' => 'dog'], 'foo'));                                                                // array(1) { [0]=> int(2) }
var_dump(array_intersect_uassoc(['foo' => 'cat'], ['bar' => 'dog'], 'foo'));                                                                     // array(0) { }
var_dump(array_intersect_uassoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_intersect_ukey

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_intersect_ukey([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_intersect_ukey([2, 4, 5], [2], 'foo'));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_intersect_ukey([2, 4, 5], ['0' => 'cat', 'bar' => 'dog'], 'foo'));                                                              // array(1) { [0]=> int(2) }
var_dump(array_intersect_ukey(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'], ['foo' => 0, 'bar' => 1], 'foo'));                            // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }
var_dump(array_intersect_ukey(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_intersect

<?php

var_dump(array_intersect([2, 4, 5], [2, 4, 5]));    // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_intersect([2, 4, 5], ['2']));        // array(1) { [0]=> int(2) }
var_dump(array_intersect([2, 4, 5, 2], [0, 1, 2])); // array(2) { [0]=> int(2) [3]=> int(2) }
var_dump(array_intersect([2, 4, 5], [0], [2]));     // array(0) { }

array_key_exists

<?php

var_dump(array_key_exists(0, [2, 4, 5]));                            // bool(true)
var_dump(array_key_exists('foo', [2, 4, 5]));                        // bool(false)
var_dump(array_key_exists('foo', ['foo' => 'cat', 'bar' => 'dog'])); // bool(true)

array_key_first

<?php

var_dump(array_key_first([2, 4, 5]));                        // int(0)
var_dump(array_key_first(['foo' => 'cat', 'bar' => 'dog'])); // string(3) "foo"

array_key_last

<?php

var_dump(array_key_last([2, 4, 5]));                        // int(2)
var_dump(array_key_last(['foo' => 'cat', 'bar' => 'dog'])); // string(3) "bar"

array_keys

<?php

var_dump(array_keys([2, 4, 5]));                        // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(array_keys(['foo' => 'cat', 'bar' => 'dog'])); // array(2) { [0]=> string(3) "foo" [1]=> string(3) "bar" }
var_dump(array_keys([2, 4, 5], '5'));                   // array(1) { [0]=> int(2) }
var_dump(array_keys([2, 4, 5], '5', true));             // array(0) { }

array_map

<?php

/**
 * Calculate the cube of an integer.
 *
 * @param  int    $number
 * @return int
 */
function foo(int $number): int
{
    return $number ** 3;
}

/**
 * Calculate the sum of two integers.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */
function bar(int $a, int $b): int
{
    return $a + $b;
}

var_dump(array_map('foo', [2, 4, 5]));                                // array(3) { [0]=> int(8) [1]=> int(64) [2]=> int(125) }
var_dump(array_map('bar', [2, 4, 5], [2, 4, 5]));                     // array(3) { [0]=> int(4) [1]=> int(8) [2]=> int(10) }
var_dump(array_map(null, ['foo' => 'cat']));                          // array(1) { ["foo"]=> string(3) "cat" }
var_dump(array_map(null, [0], ['foo' => 'cat'], [1, 2]));             // array(2) { [0]=> array(3) { [0]=> int(0) [1]=> string(3) "cat" [2]=> int(1) } [1]=> array(3) { [0]=> NULL [1]=> NULL [2]=> int(2) } }
var_dump(array_map(fn(int $number): int => $number ** 3, [2, 4, 5])); // array(3) { [0]=> int(8) [1]=> int(64) [2]=> int(125) }

array_merge_recursive

<?php

var_dump(array_merge_recursive([2, 4, 5], [2, 4, 5]));                                                   // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(2) [4]=> int(4) [5]=> int(5) }
var_dump(array_merge_recursive([2, 4, 5], ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird']));           // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" ["baz"]=> string(4) "bird" }
var_dump(array_merge_recursive(['foo' => 'cat', 'bar' => 'dog'], ['foo' => 'dog', 'bar' => 'dog']));     // array(2) { ["foo"]=> array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" } ["bar"]=> array(2) { [0]=> string(3) "dog" [1]=> string(3) "dog" } }
var_dump(array_merge_recursive(['foo' => 'cat', 'bar' => ['dog']], ['foo' => 'dog', 'bar' => 'cat']));   // array(2) { ["foo"]=> array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" } ["bar"]=> array(2) { [0]=> string(3) "dog" [1]=> string(3) "cat" } }
var_dump(array_merge_recursive(['foo' => ['bar' => 'cat'], 2], [4, 'foo' => ['bar' => 'dog', 'bird']])); // array(3) { ["foo"]=> array(2) { ["bar"]=> array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" } [0]=> string(4) "bird" } [0]=> int(2) [1]=> int(4) }

array_merge

<?php

var_dump(array_merge([2, 4, 5], [2, 4, 5]));                                                   // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(2) [4]=> int(4) [5]=> int(5) }
var_dump(array_merge([2, 4, 5], ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird']));           // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" ["baz"]=> string(4) "bird" }
var_dump(array_merge(['foo' => 'cat', 'bar' => 'dog'], ['foo' => 'dog', 'bar' => 'cat']));     // array(2) { ["foo"]=> string(3) "dog" ["bar"]=> string(3) "cat" }
var_dump(array_merge(['foo' => 'cat', 'bar' => ['dog']], ['foo' => 'dog', 'bar' => 'cat']));   // array(2) { ["foo"]=> string(3) "dog" ["bar"]=> string(3) "cat" }
var_dump(array_merge(['foo' => ['bar' => 'cat'], 2], [4, 'foo' => ['bar' => 'dog', 'bird']])); // array(3) { ["foo"]=> array(2) { ["bar"]=> string(3) "dog" [0]=> string(4) "bird" } [0]=> int(2) [1]=> int(4) }

array_multisort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(array_multisort($foo));                                                       // bool(true)
var_dump($foo);                                                                        // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(2) [4]=> int(4) [5]=> int(5) }

$foo = [2, 4, 5, 0, 1, 2];
$bar = [10, 100, 0, 100, 50, 0];
var_dump(array_multisort($foo, $bar));                                                 // bool(true)
var_dump($foo);                                                                        // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(2) [4]=> int(4) [5]=> int(5) }
var_dump($bar);                                                                        // array(6) { [0]=> int(100) [1]=> int(50) [2]=> int(0) [3]=> int(10) [4]=> int(100) [5]=> int(0) }

$foo = ['10', 11, 100, 100, 'a'];
$bar = [1, 2, '2', 3, 1];
var_dump(array_multisort($foo, SORT_REGULAR, $bar));                                   // bool(true)
var_dump($foo);                                                                        // array(5) { [0]=> string(2) "10" [1]=> string(1) "a" [2]=> int(11) [3]=> int(100) [4]=> int(100) }
var_dump($bar);                                                                        // array(5) { [0]=> int(1) [1]=> int(1) [2]=> int(2) [3]=> string(1) "2" [4]=> int(3) }

$foo = ['foo' => '2cat', 'bar' => 'dog', 'baz' => '0bird'];
$bar = [2, 4, 5];
var_dump(array_multisort($foo, SORT_NUMERIC, $bar));                                   // bool(true)
var_dump($foo);                                                                        // array(3) { ["bar"]=> string(3) "dog" ["baz"]=> string(5) "0bird" ["foo"]=> string(4) "2cat" }
var_dump($bar);                                                                        // array(3) { [0]=> int(4) [1]=> int(5) [2]=> int(2) }

$foo = ['10', 11, 100, 100, 'a'];
$bar = [1, 2, '2', 3, 1];
var_dump(array_multisort($foo, SORT_STRING, $bar));                                    // bool(true)
var_dump($foo);                                                                        // array(5) { [0]=> string(2) "10" [1]=> int(100) [2]=> int(100) [3]=> int(11) [4]=> string(1) "a" }
var_dump($bar);                                                                        // array(5) { [0]=> int(1) [1]=> string(1) "2" [2]=> int(3) [3]=> int(2) [4]=> int(1) }

$foo = ['10', 11, 100, 100, 'a'];
$bar = [1, 2, '2', 3, 1];
var_dump(array_multisort($foo, SORT_LOCALE_STRING, $bar));                             // bool(true)
var_dump($foo);                                                                        // array(5) { [0]=> string(2) "10" [1]=> int(100) [2]=> int(100) [3]=> int(11) [4]=> string(1) "a" }
var_dump($bar);                                                                        // array(5) { [0]=> int(1) [1]=> string(1) "2" [2]=> int(3) [3]=> int(2) [4]=> int(1) }

$foo = ['10', 11, 100, 100, 'a'];
$bar = [1, 2, '2', 3, 1];
var_dump(array_multisort($foo, SORT_NATURAL, $bar));                                   // bool(true)
var_dump($foo);                                                                        // array(5) { [0]=> string(2) "10" [1]=> int(11) [2]=> int(100) [3]=> int(100) [4]=> string(1) "a" }
var_dump($bar);                                                                        // array(5) { [0]=> int(1) [1]=> int(2) [2]=> string(1) "2" [3]=> int(3) [4]=> int(1) }

$foo = ['a' => 'Cat1', 'b' => 'cat2', 'c' => 'Cat3', 'd' => 'cat20'];
$bar = [2, 4, 5, 0];
var_dump(array_multisort($foo, SORT_STRING, $bar));                                    // bool(true)
var_dump($foo);                                                                        // array(4) { ["a"]=> string(4) "Cat1" ["c"]=> string(4) "Cat3" ["b"]=> string(4) "cat2" ["d"]=> string(5) "cat20" }
var_dump($bar);                                                                        // array(4) { [0]=> int(2) [1]=> int(5) [2]=> int(4) [3]=> int(0) }

$foo = ['a' => 'Cat1', 'b' => 'cat2', 'c' => 'Cat3', 'd' => 'cat20'];
$bar = [2, 4, 5, 0];
var_dump(array_multisort($foo, SORT_STRING | SORT_FLAG_CASE, $bar));                   // bool(true)
var_dump($foo);                                                                        // array(4) { ["a"]=> string(4) "Cat1" ["b"]=> string(4) "cat2" ["d"]=> string(5) "cat20" ["c"]=> string(4) "Cat3" }
var_dump($bar);                                                                        // array(4) { [0]=> int(2) [1]=> int(4) [2]=> int(0) [3]=> int(5) }

$foo = ['a' => 'Cat1', 'b' => 'cat2', 'c' => 'Cat3', 'd' => 'cat20'];
$bar = [2, 4, 5, 0];
var_dump(array_multisort($foo, SORT_NATURAL | SORT_FLAG_CASE, $bar));                  // bool(true)
var_dump($foo);                                                                        // array(4) { ["a"]=> string(4) "Cat1" ["b"]=> string(4) "cat2" ["c"]=> string(4) "Cat3" ["d"]=> string(5) "cat20" }
var_dump($bar);                                                                        // array(4) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(0) }

$foo = ['10', 11, 100, 100, 'a'];
$bar = [1, 2, '2', 3, 1];
var_dump(array_multisort($foo, SORT_ASC, SORT_STRING, $bar, SORT_NUMERIC, SORT_DESC)); // bool(true)
var_dump($foo);                                                                        // array(5) { [0]=> string(2) "10" [1]=> int(100) [2]=> int(100) [3]=> int(11) [4]=> string(1) "a" }
var_dump($bar);                                                                        // array(5) { [0]=> int(1) [1]=> int(3) [2]=> string(1) "2" [3]=> int(2) [4]=> int(1) }

array_pad

<?php

var_dump(array_pad([2, 4, 5], 5, 0));  // array(5) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(0) [4]=> int(0) }
var_dump(array_pad([2, 4, 5], -6, 1)); // array(6) { [0]=> int(1) [1]=> int(1) [2]=> int(1) [3]=> int(2) [4]=> int(4) [5]=> int(5) }
var_dump(array_pad([2, 4, 5], 2, 0));  // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }

array_pop

<?php

$foo = [];
var_dump(array_pop($foo)); // NULL
var_dump($foo);            // array(0) { }

$foo = [2, 4, 5];
var_dump(array_pop($foo)); // int(5)
var_dump($foo);            // array(2) { [0]=> int(2) [1]=> int(4) }

$foo = ['foo' => 'cat', 'bar' => 'dog'];
var_dump(array_pop($foo)); // string(3) "dog"
var_dump($foo);            // array(1) { ["foo"]=> string(3) "cat" }

array_product

<?php

var_dump(array_product([]));                               // int(1)
var_dump(array_product([2, 4, 5]));                        // int(40)
var_dump(array_product(['foo' => 'cat', 'bar' => 'dog'])); // int(0)

array_push

<?php

$foo = [2, 4, 5];
var_dump(array_push($foo, []));         // int(4)
var_dump($foo);                         // array(4) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> array(0) { } }

$foo = ['foo' => 'cat', 'bar' => 'dog'];
var_dump(array_push($foo, 'bird'));     // int(3)
var_dump($foo);                         // array(3) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" [0]=> string(4) "bird" }

$foo = ['foo' => 'cat', 'bar' => 'dog'];
var_dump(array_push($foo, [], 'bird')); // int(4)
var_dump($foo);                         // array(4) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" [0]=> array(0) { } [1]=> string(4) "bird" }

array_rand

<?php

var_dump(array_rand([2, 4, 5]));
var_dump(array_rand(['foo' => 'cat', 'bar' => 'dog'], 1));
var_dump(array_rand([2, 4, 5, 2, 4, 5], 2));

array_reduce

<?php

/**
 * Calculate the sum of two integers.
 *
 * @param  int|null $a
 * @param  int      $b
 * @return int
 */
function foo(?int $a = null, int $b): int
{
    return $a + $b;
}

var_dump(array_reduce([2, 4, 5], 'foo'));     // int(11)
var_dump(array_reduce([2, 4, 5], 'foo', 10)); // int(21)
var_dump(array_reduce([], 'foo', 10));        // int(10)

array_replace_recursive

<?php

var_dump(array_replace_recursive([2, 4, 5], [0, 1, 2]));                                                                                                       // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(array_replace_recursive(['foo' => 'cat', 'bar' => 'dog'], ['foo' => 'bird']));                                                                        // array(2) { ["foo"]=> string(4) "bird" ["bar"]=> string(3) "dog" }
var_dump(array_replace_recursive(['foo' => 'cat', 'bar' => 'dog'], [0, 1, 2]));                                                                                // array(5) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(array_replace_recursive(['foo' => ['cat'], 'bar' => ['dog', 'bird']], ['foo' => ['horse'], 'bar' => ['dog']]));                                       // array(2) { ["foo"]=> array(1) { [0]=> string(5) "horse" } ["bar"]=> array(2) { [0]=> string(3) "dog" [1]=> string(4) "bird" } }
var_dump(array_replace_recursive(['foo' => 'cat', 'bar' => ['dog', 'bird']], ['foo' => ['horse'], 'bar' => 'dog']));                                           // array(2) { ["foo"]=> array(1) { [0]=> string(5) "horse" } ["bar"]=> string(3) "dog" }
var_dump(array_replace_recursive(['foo' => ['cat'], 'bar' => ['dog', 'bird']], ['foo' => 'horse', 'bar' => ['dog']], ['foo' => ['horse'], 'bar' => ['dog']])); // array(2) { ["foo"]=> array(1) { [0]=> string(5) "horse" } ["bar"]=> array(2) { [0]=> string(3) "dog" [1]=> string(4) "bird" } }

array_replace

<?php

var_dump(array_replace([2, 4, 5], [0, 1, 2]));                                                                                                       // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(array_replace(['foo' => 'cat', 'bar' => 'dog'], ['foo' => 'bird']));                                                                        // array(2) { ["foo"]=> string(4) "bird" ["bar"]=> string(3) "dog" }
var_dump(array_replace(['foo' => 'cat', 'bar' => 'dog'], [0, 1, 2]));                                                                                // array(5) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" [0]=> int(0) [1]=> int(1) [2]=> int(2) }
var_dump(array_replace(['foo' => ['cat'], 'bar' => ['dog', 'bird']], ['foo' => ['horse'], 'bar' => ['dog']]));                                       // array(2) { ["foo"]=> array(1) { [0]=> string(5) "horse" } ["bar"]=> array(1) { [0]=> string(3) "dog" } }
var_dump(array_replace(['foo' => 'cat', 'bar' => ['dog', 'bird']], ['foo' => ['horse'], 'bar' => 'dog']));                                           // array(2) { ["foo"]=> array(1) { [0]=> string(5) "horse" } ["bar"]=> string(3) "dog" }
var_dump(array_replace(['foo' => ['cat'], 'bar' => ['dog', 'bird']], ['foo' => 'horse', 'bar' => ['dog']], ['foo' => ['horse'], 'bar' => ['dog']])); // array(2) { ["foo"]=> array(1) { [0]=> string(5) "horse" } ["bar"]=> array(1) { [0]=> string(3) "dog" } }

array_reverse

<?php

var_dump(array_reverse([2, 4, 5]));                        // array(3) { [0]=> int(5) [1]=> int(4) [2]=> int(2) }
var_dump(array_reverse([2, 4, 5], true));                  // array(3) { [2]=> int(5) [1]=> int(4) [0]=> int(2) }
var_dump(array_reverse(['foo' => 'cat', 'bar' => 'dog'])); // array(2) { ["bar"]=> string(3) "dog" ["foo"]=> string(3) "cat" }

array_search

<?php

var_dump(array_search(0, [2, 4, 5]));                            // bool(false)
var_dump(array_search(5, [2, 4, 5]));                            // int(2)
var_dump(array_search('cat', ['foo' => 'cat', 'bar' => 'dog'])); // string(3) "foo"
var_dump(array_search('CAT', ['foo' => 'cat', 'bar' => 'dog'])); // bool(false)
var_dump(array_search('5', [2, 4, 5]));                          // int(2)
var_dump(array_search('5', [2, 4, 5], true));                    // bool(false)
var_dump(array_search(5, [2, 4, 5, 5, 5, 5]));                   // int(2)

array_shift

<?php

$foo = [];
var_dump(array_shift($foo)); // NULL
var_dump($foo);              // array(0) { }

$foo = [2, 4, 5];
var_dump(array_shift($foo)); // int(2)
var_dump($foo);              // array(2) { [0]=> int(4) [1]=> int(5) }

$foo = ['foo' => 'cat', 'bar' => 'dog'];
var_dump(array_shift($foo)); // string(3) "cat"
var_dump($foo);              // array(1) { ["bar"]=> string(3) "dog" }

array_slice

<?php

var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], 2));            // array(3) { [0]=> string(1) "c" [1]=> string(1) "d" [2]=> string(1) "e" }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], 2, 0));         // array(0) { }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], 2, 1));         // array(1) { [0]=> string(1) "c" }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], 2, -1));        // array(2) { [0]=> string(1) "c" [1]=> string(1) "d" }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], -2));           // array(2) { [0]=> string(1) "d" [1]=> string(1) "e" }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], -2, 1));        // array(1) { [0]=> string(1) "d" }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], -2, -1));       // array(1) { [0]=> string(1) "d" }
var_dump(array_slice(['a', 'b', 'c', 'd', 'e'], -2, -1, true)); // array(1) { [3]=> string(1) "d" }

array_splice

<?php

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, 2));                       // array(3) { [0]=> string(1) "c" [1]=> string(1) "d" [2]=> string(1) "e" }
var_dump($foo);                                        // array(2) { [0]=> string(1) "a" [1]=> string(1) "b" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, 2, 0));                    // array(0) { }
var_dump($foo);                                        // array(5) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" [4]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, 2, 1));                    // array(1) { [0]=> string(1) "c" }
var_dump($foo);                                        // array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "d" [3]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, 2, -1));                   // array(2) { [0]=> string(1) "c" [1]=> string(1) "d" }
var_dump($foo);                                        // array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, -2));                      // array(2) { [0]=> string(1) "d" [1]=> string(1) "e" }
var_dump($foo);                                        // array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, -2, 1));                   // array(1) { [0]=> string(1) "d" }
var_dump($foo);                                        // array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, -2, -1));                  // array(1) { [0]=> string(1) "d" }
var_dump($foo);                                        // array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, -2, -1, 'x'));             // array(1) { [0]=> string(1) "d" }
var_dump($foo);                                        // array(5) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "x" [4]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, -2, -1, ['x']));           // array(1) { [0]=> string(1) "d" }
var_dump($foo);                                        // array(5) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "x" [4]=> string(1) "e" }

$foo = ['a', 'b', 'c', 'd', 'e'];
var_dump(array_splice($foo, -2, -1, ['x', 'y', 'z'])); // array(1) { [0]=> string(1) "d" }
var_dump($foo);                                        // array(7) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "x" [4]=> string(1) "y" [5]=> string(1) "z" [6]=> string(1) "e" }

array_sum

<?php

var_dump(array_sum([]));              // int(0)
var_dump(array_sum([2, 4, 5]));       // int(11)
var_dump(array_sum([1.2, 2.3, 3.4])); // float(6.9)

array_udiff_assoc

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_udiff_assoc([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(0) { }
var_dump(array_udiff_assoc([2, 4, 5], [2], 'foo'));                                                                                         // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_udiff_assoc([2, 4, 5], ['2', '04', '05'], 'foo'));                                                                           // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_udiff_assoc(['foo' => 'cat'], ['bar' => 'dog'], 'foo'));                                                                     // array(1) { ["foo"]=> string(3) "cat" }
var_dump(array_udiff_assoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_udiff_uassoc

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function bar(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_udiff_uassoc([2, 4, 5], [2, 4, 5], 'foo', 'bar'));                                                                                   // array(0) { }
var_dump(array_udiff_uassoc([2, 4, 5], [2], 'foo', 'bar'));                                                                                         // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_udiff_uassoc([2, 4, 5], ['2', '04', '05'], 'foo', 'bar'));                                                                           // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_udiff_uassoc(['foo' => 'cat'], ['bar' => 'dog'], 'foo', 'bar'));                                                                     // array(1) { ["foo"]=> string(3) "cat" }
var_dump(array_udiff_uassoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo', 'bar')); // array(0) { }

array_udiff

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_udiff([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(0) { }
var_dump(array_udiff([2, 4, 5], ['2'], 'foo'));                                                                                       // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_udiff([2, 4, 5], ['2', '04', '05'], 'foo'));                                                                           // array(2) { [1]=> int(4) [2]=> int(5) }
var_dump(array_udiff(['foo' => 'cat'], ['bar' => 'dog'], 'foo'));                                                                     // array(1) { ["foo"]=> string(3) "cat" }
var_dump(array_udiff(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_uintersect_assoc

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_uintersect_assoc([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_uintersect_assoc([2, 4, 5], [2], 'foo'));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_uintersect_assoc([2, 4, 5], ['2', '04', '05'], 'foo'));                                                                           // array(1) { [0]=> int(2) }
var_dump(array_uintersect_assoc(['foo' => 'cat'], ['bar' => 'dog'], 'foo'));                                                                     // array(0) { }
var_dump(array_uintersect_assoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_uintersect_uassoc

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function bar(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_uintersect_uassoc([2, 4, 5], [2, 4, 5], 'foo', 'bar'));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_uintersect_uassoc([2, 4, 5], [2], 'foo', 'bar'));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_uintersect_uassoc([2, 4, 5], ['2', '04', '05'], 'foo', 'bar'));                                                                           // array(1) { [0]=> int(2) }
var_dump(array_uintersect_uassoc(['foo' => 'cat'], ['bar' => 'dog'], 'foo', 'bar'));                                                                     // array(0) { }
var_dump(array_uintersect_uassoc(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo', 'bar')); // array(0) { }

array_uintersect

<?php

/**
 * Return the result of the comparison.
 *
 * @param  string $a
 * @param  string $b
 * @return int
 */
function foo(string $a, string $b): int
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

var_dump(array_uintersect([2, 4, 5], [2, 4, 5], 'foo'));                                                                                   // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_uintersect([2, 4, 5], [2], 'foo'));                                                                                         // array(1) { [0]=> int(2) }
var_dump(array_uintersect([2, 4, 5], ['2', '04', '05'], 'foo'));                                                                           // array(1) { [0]=> int(2) }
var_dump(array_uintersect(['foo' => 'cat'], ['bar' => 'dog'], 'foo'));                                                                     // array(0) { }
var_dump(array_uintersect(['foo' => 'cat', 'bar' => 'dog'], ['bar' => 'dog', 'baz' => 'bird'], ['foo' => 'cat', 'baz' => 'bird'], 'foo')); // array(0) { }

array_unique

<?php

var_dump(array_unique([2, 4, 5, 2, 4, 5]));                                                                  // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_unique([2, 4, 5, '2', '4', 5]));                                                              // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_unique(['foo' => '2cat', 'bar' => '2dog', 'baz' => '2bird', 'qux' => '2cat'], SORT_REGULAR)); // array(3) { ["foo"]=> string(4) "2cat" ["bar"]=> string(4) "2dog" ["baz"]=> string(5) "2bird" }
var_dump(array_unique(['foo' => '2cat', 'bar' => '2dog', 'baz' => '2bird', 'qux' => '2cat'], SORT_NUMERIC)); // array(1) { ["foo"]=> string(4) "2cat" }
var_dump(array_unique([2, 4, 5, '02', '04', '05'], SORT_STRING));                                            // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> string(2) "02" [4]=> string(2) "04" [5]=> string(2) "05" }
var_dump(array_unique([2, 4, 5, '02', '04', '05'], SORT_LOCALE_STRING));                                     // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> string(2) "02" [4]=> string(2) "04" [5]=> string(2) "05" }

array_unshift

<?php

$foo = [];
var_dump(array_unshift($foo));                                   // int(0)
var_dump($foo);                                                  // array(0) { }

$foo = [2, 4, 5];
var_dump(array_unshift($foo, 2));                                // int(4)
var_dump($foo);                                                  // array(4) { [0]=> int(2) [1]=> int(2) [2]=> int(4) [3]=> int(5) }

$foo = [2, 4, 5];
var_dump(array_unshift($foo, 2, 4, 5));                          // int(6)
var_dump($foo);                                                  // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(2) [4]=> int(4) [5]=> int(5) }

$foo = [2, 4, 5];
var_dump(array_unshift($foo, ['foo' => 'cat', 'bar' => 'dog'])); // int(4)
var_dump($foo);                                                  // array(4) { [0]=> array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" } [1]=> int(2) [2]=> int(4) [3]=> int(5) }

array_values

<?php

var_dump(array_values([2, 4, 5]));                        // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array_values(['foo' => 'cat', 'bar' => 'dog'])); // array(2) { [0]=> string(3) "cat" [1]=> string(3) "dog" }

array_walk_recursive

<?php

/**
 * Calculate the cube of an integer.
 *
 * @param  int    &$value
 * @param  int    $key
 * @return void
 */
function foo(int &$value, int $key)
{
    $value = $value ** 3;
}

/**
 * Calculate the sum of two integers.
 *
 * @param  int    &$value
 * @param  int    $key
 * @param  int    $data
 * @return void
 */
function bar(int &$value, int $key, int $data)
{
    $value += $data;
}

$foo = [2, 4, 5, [2, 4, 5]];
var_dump(array_walk_recursive($foo, 'foo'));    // bool(true)
var_dump($foo);                                 // array(4) { [0]=> int(8) [1]=> int(64) [2]=> int(125) [3]=> array(3) { [0]=> int(8) [1]=> int(64) [2]=> int(125) } }

$foo = [2, 4, 5, [2, 4, 5]];
var_dump(array_walk_recursive($foo, 'bar', 1)); // bool(true)
var_dump($foo);                                 // array(4) { [0]=> int(3) [1]=> int(5) [2]=> int(6) [3]=> array(3) { [0]=> int(3) [1]=> int(5) [2]=> int(6) } }

array_walk

<?php

/**
 * Calculate the cube of an integer.
 *
 * @param  int    &$value
 * @param  int    $key
 * @return void
 */
function foo(int &$value, int $key)
{
    $value = $value ** 3;
}

/**
 * Calculate the sum of two integers.
 *
 * @param  int    &$value
 * @param  int    $key
 * @param  int    $data
 * @return void
 */
function bar(int &$value, int $key, int $data)
{
    $value += $data;
}

$foo = [2, 4, 5];
var_dump(array_walk($foo, 'foo'));    // bool(true)
var_dump($foo);                       // array(3) { [0]=> int(8) [1]=> int(64) [2]=> int(125) }

$foo = [2, 4, 5];
var_dump(array_walk($foo, 'bar', 1)); // bool(true)
var_dump($foo);                       // array(3) { [0]=> int(3) [1]=> int(5) [2]=> int(6) }

array

<?php

var_dump(array(2, 4, 5));                        // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }
var_dump(array('foo' => 'cat', 'bar' => 'dog')); // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }
var_dump(array('foo' => 'cat', 2, 4, 5));        // array(4) { ["foo"]=> string(3) "cat" [0]=> int(2) [1]=> int(4) [2]=> int(5) }

arsort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(arsort($foo));                                // bool(true)
var_dump($foo);                                        // array(6) { [2]=> int(5) [1]=> int(4) [0]=> int(2) [5]=> int(2) [4]=> int(1) [3]=> int(0) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(arsort($foo));                                // bool(true)
var_dump($foo);                                        // array(3) { ["bar"]=> string(3) "dog" ["foo"]=> string(3) "cat" ["baz"]=> string(4) "bird" }

$foo = ['2', 4, '5', 0, '1', 2];
var_dump(arsort($foo, SORT_REGULAR));                  // bool(true)
var_dump($foo);                                        // array(6) { [2]=> string(1) "5" [1]=> int(4) [0]=> string(1) "2" [5]=> int(2) [4]=> string(1) "1" [3]=> int(0) }

$foo = ['foo' => '2cat', 'bar' => '1dog', 'baz' => '0bird'];
var_dump(arsort($foo, SORT_NUMERIC));                  // bool(true)
var_dump($foo);                                        // array(3) { ["foo"]=> string(4) "2cat" ["bar"]=> string(4) "1dog" ["baz"]=> string(5) "0bird" }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(arsort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                        // array(6) { [2]=> int(5) [1]=> int(4) [5]=> int(22) [0]=> int(20) [4]=> int(1) [3]=> int(0) }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(arsort($foo, SORT_LOCALE_STRING));            // bool(true)
var_dump($foo);                                        // array(6) { [2]=> int(5) [1]=> int(4) [5]=> int(22) [0]=> int(20) [4]=> int(1) [3]=> int(0) }

$foo = ['foo' => 'cat1', 'bar' => 'cat12', 'baz' => 'cat10', 'qux' => 'cat2'];
var_dump(arsort($foo, SORT_NATURAL));                  // bool(true)
var_dump($foo);                                        // array(4) { ["bar"]=> string(5) "cat12" ["baz"]=> string(5) "cat10" ["qux"]=> string(4) "cat2" ["foo"]=> string(4) "cat1" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(arsort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                        // array(4) { ["qux"]=> string(5) "cat20" ["bar"]=> string(4) "cat2" ["baz"]=> string(4) "Cat3" ["foo"]=> string(4) "Cat1" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(arsort($foo, SORT_STRING | SORT_FLAG_CASE));  // bool(true)
var_dump($foo);                                        // array(4) { ["baz"]=> string(4) "Cat3" ["qux"]=> string(5) "cat20" ["bar"]=> string(4) "cat2" ["foo"]=> string(4) "Cat1" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(arsort($foo, SORT_NATURAL | SORT_FLAG_CASE)); // bool(true)
var_dump($foo);                                        // array(4) { ["qux"]=> string(5) "cat20" ["baz"]=> string(4) "Cat3" ["bar"]=> string(4) "cat2" ["foo"]=> string(4) "Cat1" }

asort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(asort($foo));                                // bool(true)
var_dump($foo);                                       // array(6) { [3]=> int(0) [4]=> int(1) [0]=> int(2) [5]=> int(2) [1]=> int(4) [2]=> int(5) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(asort($foo));                                // bool(true)
var_dump($foo);                                       // array(3) { ["baz"]=> string(4) "bird" ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }

$foo = ['2', 4, '5', 0, '1', 2];
var_dump(asort($foo, SORT_REGULAR));                  // bool(true)
var_dump($foo);                                       // array(6) { [3]=> int(0) [4]=> string(1) "1" [0]=> string(1) "2" [5]=> int(2) [1]=> int(4) [2]=> string(1) "5" }

$foo = ['foo' => '2cat', 'bar' => '1dog', 'baz' => '0bird'];
var_dump(asort($foo, SORT_NUMERIC));                  // bool(true)
var_dump($foo);                                       // array(3) { ["baz"]=> string(5) "0bird" ["bar"]=> string(4) "1dog" ["foo"]=> string(4) "2cat" }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(asort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                       // array(6) { [3]=> int(0) [4]=> int(1) [0]=> int(20) [5]=> int(22) [1]=> int(4) [2]=> int(5) }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(asort($foo, SORT_LOCALE_STRING));            // bool(true)
var_dump($foo);                                       // array(6) { [3]=> int(0) [4]=> int(1) [0]=> int(20) [5]=> int(22) [1]=> int(4) [2]=> int(5) }

$foo = ['foo' => 'cat1', 'bar' => 'cat12', 'baz' => 'cat10', 'qux' => 'cat2'];
var_dump(asort($foo, SORT_NATURAL));                  // bool(true)
var_dump($foo);                                       // array(4) { ["foo"]=> string(4) "cat1" ["qux"]=> string(4) "cat2" ["baz"]=> string(5) "cat10" ["bar"]=> string(5) "cat12" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(asort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                       // array(4) { ["foo"]=> string(4) "Cat1" ["baz"]=> string(4) "Cat3" ["bar"]=> string(4) "cat2" ["qux"]=> string(5) "cat20" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(asort($foo, SORT_STRING | SORT_FLAG_CASE));  // bool(true)
var_dump($foo);                                       // array(4) { ["foo"]=> string(4) "Cat1" ["bar"]=> string(4) "cat2" ["qux"]=> string(5) "cat20" ["baz"]=> string(4) "Cat3" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(asort($foo, SORT_NATURAL | SORT_FLAG_CASE)); // bool(true)
var_dump($foo);                                       // array(4) { ["foo"]=> string(4) "Cat1" ["bar"]=> string(4) "cat2" ["baz"]=> string(4) "Cat3" ["qux"]=> string(5) "cat20" }

compact

<?php

$foo = 'cat';
$bar = 'dog';
var_dump(compact('foo', 'bar'));               // array(2) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }

$foo = 'cat';
$bar = 'dog';
$baz = 'baz';
$qux = ['cat', 'dog', 'baz', 'qux'];
var_dump(compact('foo', 'bar', 'baz', 'qux')); // array(4) { ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" ["baz"]=> string(3) "baz" ["qux"]=> array(4) { [0]=> string(3) "cat" [1]=> string(3) "dog" [2]=> string(3) "baz" [3]=> string(3) "qux" } }

count

<?php

var_dump(count([2, 4, 5]));                                                      // int(3)
var_dump(count(['foo' => 'cat', 'bar' => 'dog']));                               // int(2)
var_dump(count([[2, 4, 5], ['foo' => 'cat', 'bar' => 'dog']]));                  // int(2)
var_dump(count([[2, 4, 5], ['foo' => 'cat', 'bar' => 'dog']], COUNT_RECURSIVE)); // int(7)

current

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];

var_dump(current($foo)); // string(3) "cat"

var_dump(next($foo));    // string(3) "dog"
var_dump(current($foo)); // string(3) "dog"

var_dump(next($foo));    // string(4) "bird"
var_dump(current($foo)); // string(4) "bird"

end

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'qux' => 'bird'];

var_dump(current($foo)); // string(3) "cat"

var_dump(end($foo));     // string(4) "bird"
var_dump(current($foo)); // string(4) "bird"

var_dump(prev($foo));    // string(3) "dog"
var_dump(current($foo)); // string(3) "dog"

var_dump(end($foo));     // string(4) "bird"
var_dump(current($foo)); // string(4) "bird"

extract

<?php

var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird']));                                                     // int(3)
var_dump($foo);                                                                                                           // string(3) "cat"
var_dump($bar);                                                                                                           // string(3) "dog"
var_dump($baz);                                                                                                           // string(4) "bird"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'], EXTR_OVERWRITE));                                     // int(3)
var_dump($foo);                                                                                                           // string(3) "cat"
var_dump($bar);                                                                                                           // string(3) "dog"
var_dump($baz);                                                                                                           // string(4) "bird"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'], EXTR_SKIP));                                          // int(0)
var_dump($foo);                                                                                                           // string(3) "foo"
var_dump($bar);                                                                                                           // string(3) "bar"
var_dump($baz);                                                                                                           // string(3) "baz"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird', 'qux' => 'horse'], EXTR_PREFIX_SAME, 'prefix'));       // int(4)
var_dump($prefix_foo);                                                                                                    // string(3) "cat"
var_dump($prefix_bar);                                                                                                    // string(3) "dog"
var_dump($prefix_baz);                                                                                                    // string(4) "bird"
var_dump($qux);                                                                                                           // string(5) "horse"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird', 'qux' => 'horse'], EXTR_PREFIX_ALL, 'prefix'));        // int(4)
var_dump($prefix_foo);                                                                                                    // string(3) "cat"
var_dump($prefix_bar);                                                                                                    // string(3) "dog"
var_dump($prefix_baz);                                                                                                    // string(4) "bird"
var_dump($prefix_qux);                                                                                                    // string(5) "horse"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract([0 => 'cat', 1 => 'dog', 'baz' => 'bird'], EXTR_PREFIX_INVALID, 'prefix'));                              // int(3)
var_dump($prefix_0);                                                                                                      // string(3) "cat"
var_dump($prefix_1);                                                                                                      // string(3) "dog"
var_dump($baz);                                                                                                           // string(4) "bird"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird', 'test' => 'horse'], EXTR_IF_EXISTS));                  // int(3)
var_dump($foo);                                                                                                           // string(3) "cat"
var_dump($bar);                                                                                                           // string(3) "dog"
var_dump($baz);                                                                                                           // string(4) "bird"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
var_dump(extract(['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird', 'test' => 'horse'], EXTR_PREFIX_IF_EXISTS, 'prefix')); // int(3)
var_dump($prefix_foo);                                                                                                    // string(3) "cat"
var_dump($prefix_bar);                                                                                                    // string(3) "dog"
var_dump($prefix_baz);                                                                                                    // string(4) "bird"
var_dump($test);                                                                                                          // string(5) "horse"

$foo = 'foo';
$bar = 'bar';
$baz = 'baz';
$array = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(extract($array, EXTR_PREFIX_ALL | EXTR_REFS, 'prefix'));                                                         // int(3)
var_dump($prefix_foo);                                                                                                    // string(3) "cat"
var_dump($prefix_bar);                                                                                                    // string(3) "dog"
var_dump($prefix_baz);                                                                                                    // string(4) "bird"
list($prefix_foo, $prefix_bar, $prefix_baz) = [1, 11, 111];
var_dump($array);                                                                                                         // array(3) { ["foo"]=> &int(1) ["bar"]=> &int(11) ["baz"]=> &int(111) }

in_array

<?php

var_dump(in_array(5, [2, 4, 5]));                                             // bool(true)
var_dump(in_array(5, [2, 4, [5]]));                                           // bool(false)
var_dump(in_array('cat', ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'])); // bool(true)
var_dump(in_array('CAT', ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'])); // bool(false)
var_dump(in_array('5', [2, 4, 5]));                                           // bool(true)
var_dump(in_array('5', [2, 4, 5], true));                                     // bool(false)

key_exists

<?php

var_dump(key_exists(0, [2, 4, 5]));                                             // bool(true)
var_dump(key_exists('foo', [2, 4, 5]));                                         // bool(false)
var_dump(key_exists('foo', ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'])); // bool(true)

key

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];

var_dump(key($foo));  // string(3) "foo"

var_dump(next($foo)); // string(3) "dog"
var_dump(key($foo));  // string(3) "bar"

var_dump(next($foo)); // string(4) "bird"
var_dump(key($foo));  // string(3) "baz"

krsort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(krsort($foo));                                // bool(true)
var_dump($foo);                                        // array(6) { [5]=> int(2) [4]=> int(1) [3]=> int(0) [2]=> int(5) [1]=> int(4) [0]=> int(2) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(krsort($foo));                                // bool(true)
var_dump($foo);                                        // array(3) { ["foo"]=> string(3) "cat" ["baz"]=> string(4) "bird" ["bar"]=> string(3) "dog" }

$foo = ['2', 4, '5', 0, '1', 2];
var_dump(krsort($foo, SORT_REGULAR));                  // bool(true)
var_dump($foo);                                        // array(6) { [5]=> int(2) [4]=> string(1) "1" [3]=> int(0) [2]=> string(1) "5" [1]=> int(4) [0]=> string(1) "2" }

$foo = ['2cat' => 'foo', '1dog' => 'bar', '0bird' => 'baz'];
var_dump(krsort($foo, SORT_NUMERIC));                  // bool(true)
var_dump($foo);                                        // array(3) { ["2cat"]=> string(3) "foo" ["1dog"]=> string(3) "bar" ["0bird"]=> string(3) "baz" }

$foo = ['cat1' => 'foo', 'cat12' => 'bar', 'cat10' => 'baz', 'cat2' => 'qux'];
var_dump(krsort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                        // array(4) { ["cat2"]=> string(3) "qux" ["cat12"]=> string(3) "bar" ["cat10"]=> string(3) "baz" ["cat1"]=> string(3) "foo" }

$foo = ['cat1' => 'foo', 'cat12' => 'bar', 'cat10' => 'baz', 'cat2' => 'qux'];
var_dump(krsort($foo, SORT_LOCALE_STRING));            // bool(true)
var_dump($foo);                                        // array(4) { ["cat2"]=> string(3) "qux" ["cat12"]=> string(3) "bar" ["cat10"]=> string(3) "baz" ["cat1"]=> string(3) "foo" }

$foo = ['cat1' => 'foo', 'cat12' => 'bar', 'cat10' => 'baz', 'cat2' => 'qux'];
var_dump(krsort($foo, SORT_NATURAL));                  // bool(true)
var_dump($foo);                                        // array(4) { ["cat12"]=> string(3) "bar" ["cat10"]=> string(3) "baz" ["cat2"]=> string(3) "qux" ["cat1"]=> string(3) "foo" }

$foo = ['Cat1' => 'foo', 'cat2' => 'bar', 'Cat3' => 'baz', 'cat20' => 'qux'];
var_dump(krsort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                        // array(4) { ["cat20"]=> string(3) "qux" ["cat2"]=> string(3) "bar" ["Cat3"]=> string(3) "baz" ["Cat1"]=> string(3) "foo" }

$foo = ['Cat1' => 'foo', 'cat2' => 'bar', 'Cat3' => 'baz', 'cat20' => 'qux'];
var_dump(krsort($foo, SORT_STRING | SORT_FLAG_CASE));  // bool(true)
var_dump($foo);                                        // array(4) { ["Cat3"]=> string(3) "baz" ["cat20"]=> string(3) "qux" ["cat2"]=> string(3) "bar" ["Cat1"]=> string(3) "foo" }

$foo = ['Cat1' => 'foo', 'cat2' => 'bar', 'Cat3' => 'baz', 'cat20' => 'qux'];
var_dump(krsort($foo, SORT_NATURAL | SORT_FLAG_CASE)); // bool(true)
var_dump($foo);                                        // array(4) { ["cat20"]=> string(3) "qux" ["Cat3"]=> string(3) "baz" ["cat2"]=> string(3) "bar" ["Cat1"]=> string(3) "foo" }

ksort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(ksort($foo));                                // bool(true)
var_dump($foo);                                       // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(0) [4]=> int(1) [5]=> int(2) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(ksort($foo));                                // bool(true)
var_dump($foo);                                       // array(3) { ["bar"]=> string(3) "dog" ["baz"]=> string(4) "bird" ["foo"]=> string(3) "cat" }

$foo = ['2', 4, '5', 0, '1', 2];
var_dump(ksort($foo, SORT_REGULAR));                  // bool(true)
var_dump($foo);                                       // array(6) { [0]=> string(1) "2" [1]=> int(4) [2]=> string(1) "5" [3]=> int(0) [4]=> string(1) "1" [5]=> int(2) }

$foo = ['2cat' => 'foo', '1dog' => 'bar', '0bird' => 'baz'];
var_dump(ksort($foo, SORT_NUMERIC));                  // bool(true)
var_dump($foo);                                       // array(3) { ["0bird"]=> string(3) "baz" ["1dog"]=> string(3) "bar" ["2cat"]=> string(3) "foo" }

$foo = ['cat1' => 'foo', 'cat12' => 'bar', 'cat10' => 'baz', 'cat2' => 'qux'];
var_dump(ksort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                       // array(4) { ["cat1"]=> string(3) "foo" ["cat10"]=> string(3) "baz" ["cat12"]=> string(3) "bar" ["cat2"]=> string(3) "qux" }

$foo = ['cat1' => 'foo', 'cat12' => 'bar', 'cat10' => 'baz', 'cat2' => 'qux'];
var_dump(ksort($foo, SORT_LOCALE_STRING));            // bool(true)
var_dump($foo);                                       // array(4) { ["cat1"]=> string(3) "foo" ["cat10"]=> string(3) "baz" ["cat12"]=> string(3) "bar" ["cat2"]=> string(3) "qux" }

$foo = ['cat1' => 'foo', 'cat12' => 'bar', 'cat10' => 'baz', 'cat2' => 'qux'];
var_dump(ksort($foo, SORT_NATURAL));                  // bool(true)
var_dump($foo);                                       // array(4) { ["cat1"]=> string(3) "foo" ["cat2"]=> string(3) "qux" ["cat10"]=> string(3) "baz" ["cat12"]=> string(3) "bar" }

$foo = ['Cat1' => 'foo', 'cat2' => 'bar', 'Cat3' => 'baz', 'cat20' => 'qux'];
var_dump(ksort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                       // array(4) { ["Cat1"]=> string(3) "foo" ["Cat3"]=> string(3) "baz" ["cat2"]=> string(3) "bar" ["cat20"]=> string(3) "qux" }

$foo = ['Cat1' => 'foo', 'cat2' => 'bar', 'Cat3' => 'baz', 'cat20' => 'qux'];
var_dump(ksort($foo, SORT_STRING | SORT_FLAG_CASE));  // bool(true)
var_dump($foo);                                       // array(4) { ["Cat1"]=> string(3) "foo" ["cat2"]=> string(3) "bar" ["cat20"]=> string(3) "qux" ["Cat3"]=> string(3) "baz" }

$foo = ['Cat1' => 'foo', 'cat2' => 'bar', 'Cat3' => 'baz', 'cat20' => 'qux'];
var_dump(ksort($foo, SORT_NATURAL | SORT_FLAG_CASE)); // bool(true)
var_dump($foo);                                       // array(4) { ["Cat1"]=> string(3) "foo" ["cat2"]=> string(3) "bar" ["Cat3"]=> string(3) "baz" ["cat20"]=> string(3) "qux" }

list

<?php

list($foo, $bar, $baz) = [2, 4, 5];
var_dump($foo); // int(2)
var_dump($bar); // int(4)
var_dump($baz); // int(5)

list($foo, , $baz) = [2, 4, 5];
var_dump($foo); // int(2)
var_dump($baz); // int(5)

list(, , $baz) = [2, 4, 5];
var_dump($baz); // int(5)

list($foo, list($bar, $baz)) = [2, [4, 5]];
var_dump($foo); // int(2)
var_dump($bar); // int(4)
var_dump($baz); // int(5)

list('baz' => $baz, 'foo' => $foo, 'bar' => $bar) = ['foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz'];
var_dump($foo); // string(3) "foo"
var_dump($bar); // string(3) "bar"
var_dump($baz); // string(3) "baz"

list($qux[0], $qux[1], $qux[2]) = [2, 4, 5];
var_dump($qux); // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }

natcasesort

<?php

$foo = [2, 4, 5];
var_dump(natcasesort($foo)); // bool(true)
var_dump($foo);              // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(natcasesort($foo)); // bool(true)
var_dump($foo);              // array(3) { ["baz"]=> string(4) "bird" ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(natcasesort($foo)); // bool(true)
var_dump($foo);              // array(4) { ["foo"]=> string(4) "Cat1" ["bar"]=> string(4) "cat2" ["baz"]=> string(4) "Cat3" ["qux"]=> string(5) "cat20" }

$foo = [-5, 3, -2, 0, -1000, 9, 1];
var_dump(natcasesort($foo)); // bool(true)
var_dump($foo);              // array(7) { [2]=> int(-2) [0]=> int(-5) [4]=> int(-1000) [3]=> int(0) [6]=> int(1) [1]=> int(3) [5]=> int(9) }

$foo = ['09', '8', '10', '009', '011', '0'];
var_dump(natcasesort($foo)); // bool(true)
var_dump($foo);              // array(6) { [5]=> string(1) "0" [1]=> string(1) "8" [0]=> string(2) "09" [3]=> string(3) "009" [2]=> string(2) "10" [4]=> string(3) "011" }

natsort

<?php

$foo = [2, 4, 5];
var_dump(natsort($foo)); // bool(true)
var_dump($foo);          // array(3) { [0]=> int(2) [1]=> int(4) [2]=> int(5) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(natsort($foo)); // bool(true)
var_dump($foo);          // array(3) { ["baz"]=> string(4) "bird" ["foo"]=> string(3) "cat" ["bar"]=> string(3) "dog" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(natsort($foo)); // bool(true)
var_dump($foo);          // array(4) { ["foo"]=> string(4) "Cat1" ["baz"]=> string(4) "Cat3" ["bar"]=> string(4) "cat2" ["qux"]=> string(5) "cat20" }

$foo = [-5, 3, -2, 0, -1000, 9, 1];
var_dump(natsort($foo)); // bool(true)
var_dump($foo);          // array(7) { [2]=> int(-2) [0]=> int(-5) [4]=> int(-1000) [3]=> int(0) [6]=> int(1) [1]=> int(3) [5]=> int(9) }

$foo = ['09', '8', '10', '009', '011', '0'];
var_dump(natsort($foo)); // bool(true)
var_dump($foo);          // array(6) { [5]=> string(1) "0" [1]=> string(1) "8" [0]=> string(2) "09" [3]=> string(3) "009" [2]=> string(2) "10" [4]=> string(3) "011" }

next

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];

var_dump(current($foo)); // string(3) "cat"

var_dump(next($foo));    // string(3) "dog"
var_dump(current($foo)); // string(3) "dog"

var_dump(next($foo));    // string(4) "bird"
var_dump(current($foo)); // string(4) "bird"

pos

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];

var_dump(pos($foo));  // string(3) "cat"

var_dump(next($foo)); // string(3) "dog"
var_dump(pos($foo));  // string(3) "dog"

var_dump(next($foo)); // string(4) "bird"
var_dump(pos($foo));  // string(4) "bird"

prev

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];

var_dump(current($foo)); // string(3) "cat"

var_dump(next($foo));    // string(3) "dog"
var_dump(current($foo)); // string(3) "dog"

var_dump(next($foo));    // string(4) "bird"
var_dump(current($foo)); // string(4) "bird"

var_dump(prev($foo));    // string(3) "dog"
var_dump(current($foo)); // string(3) "dog"

range

<?php

var_dump(range(0, 5));        // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(3) [4]=> int(4) [5]=> int(5) }
var_dump(range(0, 50, 10));   // array(6) { [0]=> int(0) [1]=> int(10) [2]=> int(20) [3]=> int(30) [4]=> int(40) [5]=> int(50) }
var_dump(range(5, 0, -2));    // array(3) { [0]=> int(5) [1]=> int(3) [2]=> int(1) }
var_dump(range('a', 'd'));    // array(4) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" [3]=> string(1) "d" }
var_dump(range('a', 'd', 2)); // array(2) { [0]=> string(1) "a" [1]=> string(1) "c" }
var_dump(range('d', 'a', 2)); // array(2) { [0]=> string(1) "d" [1]=> string(1) "b" }

reset

<?php

$foo = ['foo' => 'cat', 'bar' => 'dog', 'qux' => 'bird'];

var_dump(current($foo)); // string(3) "cat"

var_dump(next($foo));    // string(3) "dog"
var_dump(current($foo)); // string(3) "dog"

var_dump(next($foo));    // string(4) "bird"
var_dump(current($foo)); // string(4) "bird"

var_dump(reset($foo));   // string(3) "cat"
var_dump(current($foo)); // string(3) "cat"

rsort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(rsort($foo));                                // bool(true)
var_dump($foo);                                       // array(6) { [0]=> int(5) [1]=> int(4) [2]=> int(2) [3]=> int(2) [4]=> int(1) [5]=> int(0) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(rsort($foo));                                // bool(true)
var_dump($foo);                                       // array(3) { [0]=> string(3) "dog" [1]=> string(3) "cat" [2]=> string(4) "bird" }

$foo = ['2', 4, '5', 0, '1', 2];
var_dump(rsort($foo, SORT_REGULAR));                  // bool(true)
var_dump($foo);                                       // array(6) { [0]=> string(1) "5" [1]=> int(4) [2]=> string(1) "2" [3]=> int(2) [4]=> string(1) "1" [5]=> int(0) }

$foo = ['foo' => '2cat', 'bar' => '1dog', 'baz' => '0bird'];
var_dump(rsort($foo, SORT_NUMERIC));                  // bool(true)
var_dump($foo);                                       // array(3) { [0]=> string(4) "2cat" [1]=> string(4) "1dog" [2]=> string(5) "0bird" }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(rsort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                       // array(6) { [0]=> int(5) [1]=> int(4) [2]=> int(22) [3]=> int(20) [4]=> int(1) [5]=> int(0) }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(rsort($foo, SORT_LOCALE_STRING));            // bool(true)
var_dump($foo);                                       // array(6) { [0]=> int(5) [1]=> int(4) [2]=> int(22) [3]=> int(20) [4]=> int(1) [5]=> int(0) }

$foo = ['foo' => 'cat1', 'bar' => 'cat12', 'baz' => 'cat10', 'qux' => 'cat2'];
var_dump(rsort($foo, SORT_NATURAL));                  // bool(true)
var_dump($foo);                                       // array(4) { [0]=> string(5) "cat12" [1]=> string(5) "cat10" [2]=> string(4) "cat2" [3]=> string(4) "cat1" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(rsort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                       // array(4) { [0]=> string(5) "cat20" [1]=> string(4) "cat2" [2]=> string(4) "Cat3" [3]=> string(4) "Cat1" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(rsort($foo, SORT_STRING | SORT_FLAG_CASE));  // bool(true)
var_dump($foo);                                       // array(4) { [0]=> string(4) "Cat3" [1]=> string(5) "cat20" [2]=> string(4) "cat2" [3]=> string(4) "Cat1" }

$foo = ['a' => 'Cat1', 'b' => 'cat2', 'c' => 'Cat3', 'd' => 'cat20'];
var_dump(rsort($foo, SORT_NATURAL | SORT_FLAG_CASE)); // bool(true)
var_dump($foo);                                       // array(4) { [0]=> string(5) "cat20" [1]=> string(4) "Cat3" [2]=> string(4) "cat2" [3]=> string(4) "Cat1" }

shuffle

<?php

$foo = [2, 4, 5];
var_dump(shuffle($foo)); // bool(true)
var_dump($foo);

$foo = ['foo' => 'cat', 'bar' => 'dog'];
var_dump(shuffle($foo)); // bool(true)
var_dump($foo);

$foo = [[2, 4, 5], ['foo' => 'cat', 'bar' => 'dog']];
var_dump(shuffle($foo)); // bool(true)
var_dump($foo);

sizeof

<?php

var_dump(sizeof([2, 4, 5]));                                                      // int(3)
var_dump(sizeof(['foo' => 'cat', 'bar' => 'dog']));                               // int(2)
var_dump(sizeof([[2, 4, 5], ['foo' => 'cat', 'bar' => 'dog']]));                  // int(2)
var_dump(sizeof([[2, 4, 5], ['foo' => 'cat', 'bar' => 'dog']], COUNT_RECURSIVE)); // int(7)

sort

<?php

$foo = [2, 4, 5, 0, 1, 2];
var_dump(sort($foo));                                // bool(true)
var_dump($foo);                                      // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(2) [4]=> int(4) [5]=> int(5) }

$foo = ['foo' => 'cat', 'bar' => 'dog', 'baz' => 'bird'];
var_dump(sort($foo));                                // bool(true)
var_dump($foo);                                      // array(3) { [0]=> string(4) "bird" [1]=> string(3) "cat" [2]=> string(3) "dog" }

$foo = ['2', 4, '5', 0, '1', 2];
var_dump(sort($foo, SORT_REGULAR));                  // bool(true)
var_dump($foo);                                      // array(6) { [0]=> int(0) [1]=> string(1) "1" [2]=> string(1) "2" [3]=> int(2) [4]=> int(4) [5]=> string(1) "5" }

$foo = ['foo' => '2cat', 'bar' => '1dog', 'baz' => '0bird'];
var_dump(sort($foo, SORT_NUMERIC));                  // bool(true)
var_dump($foo);                                      // array(3) { [0]=> string(5) "0bird" [1]=> string(4) "1dog" [2]=> string(4) "2cat" }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(sort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                      // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(20) [3]=> int(22) [4]=> int(4) [5]=> int(5) }

$foo = [20, 4, 5, 0, 1, 22];
var_dump(sort($foo, SORT_LOCALE_STRING));            // bool(true)
var_dump($foo);                                      // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(20) [3]=> int(22) [4]=> int(4) [5]=> int(5) }

$foo = ['foo' => 'cat1', 'bar' => 'cat12', 'baz' => 'cat10', 'qux' => 'cat2'];
var_dump(sort($foo, SORT_NATURAL));                  // bool(true)
var_dump($foo);                                      // array(4) { [0]=> string(4) "cat1" [1]=> string(4) "cat2" [2]=> string(5) "cat10" [3]=> string(5) "cat12" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(sort($foo, SORT_STRING));                   // bool(true)
var_dump($foo);                                      // array(4) { [0]=> string(4) "Cat1" [1]=> string(4) "Cat3" [2]=> string(4) "cat2" [3]=> string(5) "cat20" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(sort($foo, SORT_STRING | SORT_FLAG_CASE));  // bool(true)
var_dump($foo);                                      // array(4) { [0]=> string(4) "Cat1" [1]=> string(4) "cat2" [2]=> string(5) "cat20" [3]=> string(4) "Cat3" }

$foo = ['foo' => 'Cat1', 'bar' => 'cat2', 'baz' => 'Cat3', 'qux' => 'cat20'];
var_dump(sort($foo, SORT_NATURAL | SORT_FLAG_CASE)); // bool(true)
var_dump($foo);                                      // array(4) { [0]=> string(4) "Cat1" [1]=> string(4) "cat2" [2]=> string(4) "Cat3" [3]=> string(5) "cat20" }

uasort

<?php

/**
 * Sort in ascending order.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */
function foo(int $a, int $b): int
{
    return ($a <=> $b);
}

/**
 * Sort in descending order.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */
function bar(int $a, int $b): int
{
    return -($a <=> $b);
}

$foo = [2, 4, 5, 0, 1, 2];
var_dump(uasort($foo, 'foo')); // bool(true)
var_dump($foo);                // array(6) { [3]=> int(0) [4]=> int(1) [0]=> int(2) [5]=> int(2) [1]=> int(4) [2]=> int(5) }

$foo = [2, 4, 5, 0, 1, 2];
var_dump(uasort($foo, 'bar')); // bool(true)
var_dump($foo);                // array(6) { [2]=> int(5) [1]=> int(4) [0]=> int(2) [5]=> int(2) [4]=> int(1) [3]=> int(0) }

uksort

<?php

/**
 * Sort in ascending order.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */
function foo(int $a, int $b): int
{
    return ($a <=> $b);
}

/**
 * Sort in descending order.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */
function bar(int $a, int $b): int
{
    return -($a <=> $b);
}

$foo = [2, 4, 5, 0, 1, 2];
var_dump(uksort($foo, 'foo')); // bool(true)
var_dump($foo);                // array(6) { [0]=> int(2) [1]=> int(4) [2]=> int(5) [3]=> int(0) [4]=> int(1) [5]=> int(2) }

$foo = [2, 4, 5, 0, 1, 2];
var_dump(uksort($foo, 'bar')); // bool(true)
var_dump($foo);                // array(6) { [5]=> int(2) [4]=> int(1) [3]=> int(0) [2]=> int(5) [1]=> int(4) [0]=> int(2) }

usort

<?php

/**
 * Sort in ascending order.
 *
 * @param  int    $a
 * @param  int    $b
 * @return int
 */
function foo(int $a, int $b): int
{
    return ($a <=> $b);
}

/**
 * Sort by string.
 *
 * @param  string  $a
 * @param  string  $b
 * @return int
 */
function bar(string $a, string $b): int
{
    return strcmp($a, $b);
}

$foo = [2, 4, 5, 0, 1, 2];
var_dump(usort($foo, 'foo')); // bool(true)
var_dump($foo);               // array(6) { [0]=> int(0) [1]=> int(1) [2]=> int(2) [3]=> int(2) [4]=> int(4) [5]=> int(5) }

$foo = ['cat', 'dog', 'bird'];
var_dump(usort($foo, 'bar')); // bool(true)
var_dump($foo);               // array(3) { [0]=> string(4) "bird" [1]=> string(3) "cat" [2]=> string(3) "dog" }

results matching ""

    No results matching ""