Rewrite TestExtArray in php

Most of this is ported over, except some omissions:
  - array_filter, array_key_exists (suspected we had coverage already;
    one is a bytecode, and one was rewritten in hhas recently)
  - some random cases distinguishing init_null_variant vs. null_variant
Esse commit está contido em:
Jordan DeLong
2013-06-14 12:40:20 -07:00
commit de Sara Golemon
commit 9e127b9831
135 arquivos alterados com 2271 adições e 2035 exclusões
-1
Ver Arquivo
@@ -35,7 +35,6 @@
#include "hphp/facebook/extensions/tao/test_ext_tao.h"
#include "hphp/facebook/extensions/urlextraction/test_ext_urlextraction.h"
#include "hphp/test/ext/test_ext_apd.h"
#include "hphp/test/ext/test_ext_array.h"
#include "hphp/test/ext/test_ext_asio.h"
#include "hphp/test/ext/test_ext_bcmath.h"
#include "hphp/test/ext/test_ext_bzip2.h"
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
-113
Ver Arquivo
@@ -1,113 +0,0 @@
/*
+----------------------------------------------------------------------+
| HipHop for PHP |
+----------------------------------------------------------------------+
| Copyright (c) 2010-2013 Facebook, Inc. (http://www.facebook.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
*/
#ifndef incl_HPHP_TEST_EXT_ARRAY_H_
#define incl_HPHP_TEST_EXT_ARRAY_H_
// >>>>>> Generated by idl.php. Do NOT modify. <<<<<<
#include "hphp/test/ext/test_cpp_ext.h"
///////////////////////////////////////////////////////////////////////////////
class TestExtArray : public TestCppExt {
public:
virtual bool RunTests(const std::string &which);
bool test_array_change_key_case();
bool test_array_chunk();
bool test_array_combine();
bool test_array_count_values();
bool test_array_fill_keys();
bool test_array_fill();
bool test_array_filter();
bool test_array_flip();
bool test_array_key_exists();
bool test_array_keys();
bool test_array_map();
bool test_array_merge_recursive();
bool test_array_merge();
bool test_array_replace_recursive();
bool test_array_replace();
bool test_array_multisort();
bool test_array_pad();
bool test_array_pop();
bool test_array_product();
bool test_array_push();
bool test_array_rand();
bool test_array_reduce();
bool test_array_reverse();
bool test_array_search();
bool test_array_shift();
bool test_array_slice();
bool test_array_splice();
bool test_array_sum();
bool test_array_unique();
bool test_array_unshift();
bool test_array_values();
bool test_array_walk_recursive();
bool test_array_walk();
bool test_compact();
bool test_shuffle();
bool test_count();
bool test_sizeof();
bool test_each();
bool test_current();
bool test_next();
bool test_pos();
bool test_prev();
bool test_reset();
bool test_end();
bool test_in_array();
bool test_key();
bool test_range();
bool test_array_diff();
bool test_array_udiff();
bool test_array_diff_assoc();
bool test_array_diff_uassoc();
bool test_array_udiff_assoc();
bool test_array_udiff_uassoc();
bool test_array_diff_key();
bool test_array_diff_ukey();
bool test_array_intersect();
bool test_array_uintersect();
bool test_array_intersect_assoc();
bool test_array_intersect_uassoc();
bool test_array_uintersect_assoc();
bool test_array_uintersect_uassoc();
bool test_array_intersect_key();
bool test_array_intersect_ukey();
bool test_sort();
bool test_rsort();
bool test_asort();
bool test_arsort();
bool test_ksort();
bool test_krsort();
bool test_usort();
bool test_uasort();
bool test_uksort();
bool test_natsort();
bool test_natcasesort();
bool test_i18n_loc_get_default();
bool test_i18n_loc_set_default();
bool test_i18n_loc_set_attribute();
bool test_i18n_loc_set_strength();
bool test_i18n_loc_get_error_code();
};
///////////////////////////////////////////////////////////////////////////////
#endif // incl_HPHP_TEST_EXT_ARRAY_H_
+5
Ver Arquivo
@@ -0,0 +1,5 @@
<?php
$input_array = array("a", "b", "c", "d", "e");
var_dump(array_chunk($input_array, 2));
var_dump(array_chunk($input_array, 2, true));
@@ -0,0 +1,42 @@
array(3) {
[0]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
[1]=>
array(2) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
[2]=>
array(1) {
[0]=>
string(1) "e"
}
}
array(3) {
[0]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
[1]=>
array(2) {
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
[2]=>
array(1) {
[4]=>
string(1) "e"
}
}
+6
Ver Arquivo
@@ -0,0 +1,6 @@
<?php
$a = array("green", "red", "yellow");
$b = array("avocado", "apple", "banana");
$c = array_combine($a, $b);
var_dump($c);
@@ -0,0 +1,8 @@
array(3) {
["green"]=>
string(7) "avocado"
["red"]=>
string(5) "apple"
["yellow"]=>
string(6) "banana"
}
+20
Ver Arquivo
@@ -0,0 +1,20 @@
<?php
$array1 = array(
"a" => "green",
"red",
"blue",
"red"
);
$array2 = array(
"b" => "green",
"yellow",
"red"
);
$result = array_diff($array1, $array2);
var_dump($result);
$a = array("b");
$b = array("b", "c");
var_dump(array_diff($b, $a));
@@ -0,0 +1,8 @@
array(1) {
[1]=>
string(4) "blue"
}
array(1) {
[1]=>
string(1) "c"
}
@@ -0,0 +1,28 @@
<?php
function a() {
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "green",
"yellow",
"red"
);
$result = array_diff_assoc($array1, $array2);
var_dump($result);
}
function b() {
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
var_dump($result);
}
a();
b();
@@ -0,0 +1,14 @@
array(3) {
["b"]=>
string(5) "brown"
["c"]=>
string(4) "blue"
[0]=>
string(3) "red"
}
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
@@ -0,0 +1,5 @@
<?php
$array1 = array("blue" => 1, "red" => 2, "green" => 3, "purple" => 4);
$array2 = array("green" => 5, "blue" => 6, "yellow" => 7, "cyan" => 8);
var_dump(array_diff_key($array1, $array2));
@@ -0,0 +1,6 @@
array(2) {
["red"]=>
int(2)
["purple"]=>
int(4)
}
@@ -0,0 +1,26 @@
<?php
function comp_func($n1,$n2) {
$n1=(int)$n1; $n2=(int)$n2;
return $n1 === $n2 ? 0 : ($n1 > $n2 ? 1 : -1);
}
function a() {
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "green",
"yellow",
"red"
);
$result = array_diff_uassoc($array1, $array2, "comp_func");
var_dump($result);
}
a();
@@ -0,0 +1,8 @@
array(3) {
["b"]=>
string(5) "brown"
["c"]=>
string(4) "blue"
[0]=>
string(3) "red"
}
@@ -0,0 +1,5 @@
<?php
$array1 = array("blue" => 1, "red" => 2, "green" => 3, "purple" => 4);
$array2 = array("green" => 5, "blue" => 6, "yellow" => 7, "cyan" => 8);
var_dump(array_diff_ukey($array1, $array2, 'strcasecmp'));
@@ -0,0 +1,6 @@
array(2) {
["red"]=>
int(2)
["purple"]=>
int(4)
}
+5
Ver Arquivo
@@ -0,0 +1,5 @@
<?php
$a = array_fill(5, 6, "banana");
$b = array_fill(-2, 2, "pear");
var_dump($a);
var_dump($b);
@@ -0,0 +1,20 @@
array(6) {
[5]=>
string(6) "banana"
[6]=>
string(6) "banana"
[7]=>
string(6) "banana"
[8]=>
string(6) "banana"
[9]=>
string(6) "banana"
[10]=>
string(6) "banana"
}
array(2) {
[-2]=>
string(4) "pear"
[0]=>
string(4) "pear"
}
+13
Ver Arquivo
@@ -0,0 +1,13 @@
<?php
$array1 = array(
"a" => "green",
"red",
"blue"
);
$array2 = array(
"b" => "green",
"yellow",
"red"
);
var_dump(array_intersect($array1, $array2));
@@ -0,0 +1,6 @@
array(2) {
["a"]=>
string(5) "green"
[0]=>
string(3) "red"
}
@@ -0,0 +1,14 @@
<?php
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "green",
"yellow",
"red"
);
var_dump(array_intersect_assoc($array1, $array2));
@@ -0,0 +1,4 @@
array(1) {
["a"]=>
string(5) "green"
}
@@ -0,0 +1,6 @@
<?php
$array1 = array("blue" => 1, "red" => 2, "green" => 3, "purple" => 4);
$array2 = array("green" => 5, "blue" => 6, "yellow" => 7, "cyan" => 8);
var_dump(array_intersect_key($array1, $array2));
var_dump(array_intersect_key(null, array(1 => 1)));
@@ -0,0 +1,7 @@
array(2) {
["blue"]=>
int(1)
["green"]=>
int(3)
}
NULL
@@ -0,0 +1,15 @@
<?php
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "GREEN",
"B" => "brown",
"yellow",
"red"
);
var_dump(array_intersect_uassoc($array1, $array2, 'strcasecmp'));
@@ -0,0 +1,4 @@
array(1) {
["b"]=>
string(5) "brown"
}
@@ -0,0 +1,5 @@
<?php
$array1 = array("blue" => 1, "red" => 2, "green" => 3, "purple" => 4);
$array2 = array("green" => 5, "blue" => 6, "yellow" => 7, "cyan" => 8);
var_dump(array_intersect_ukey($array1, $array2, 'strcasecmp'));
@@ -0,0 +1,6 @@
array(2) {
["blue"]=>
int(1)
["green"]=>
int(3)
}
+16
Ver Arquivo
@@ -0,0 +1,16 @@
<?php
var_dump(array_keys(array(0 => 100, "color" => "red")));
var_dump(array_keys(array("blue", "red", "green", "blue", "blue"),
"blue"));
var_dump(array_keys(
array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"))
));
$array = array(
"a" => null,
"b" => 123,
"c" => false,
);
var_dump(array_keys($array));
var_dump(array_keys($array, null));
@@ -0,0 +1,34 @@
array(2) {
[0]=>
int(0)
[1]=>
string(5) "color"
}
array(3) {
[0]=>
int(0)
[1]=>
int(3)
[2]=>
int(4)
}
array(2) {
[0]=>
string(5) "color"
[1]=>
string(4) "size"
}
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "c"
}
+17
Ver Arquivo
@@ -0,0 +1,17 @@
<?php
function cube($s1) { return $s1*$s1*$s1; }
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
var_dump($b);
$b = array_map(null, $a);
var_dump($b);
$b = array_map(null, array('x' => 6, 0 => 7));
var_dump($b);
var_dump(
array_map(
null,
array('x' => 6, 0 => 7),
array(array('a', 'b'), true)
)
);
@@ -0,0 +1,51 @@
array(5) {
[0]=>
int(1)
[1]=>
int(8)
[2]=>
int(27)
[3]=>
int(64)
[4]=>
int(125)
}
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}
array(2) {
["x"]=>
int(6)
[0]=>
int(7)
}
array(2) {
[0]=>
array(2) {
[0]=>
int(6)
[1]=>
array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
}
[1]=>
array(2) {
[0]=>
int(7)
[1]=>
bool(true)
}
}
+69
Ver Arquivo
@@ -0,0 +1,69 @@
<?php
function a() {
$array1 = array(
"color" => "red",
2,
4
);
$array2 = array(
"a",
"b",
"color" => "green",
"shape" => "trapezoid",
4
);
$result = array_merge($array1, array($array2));
var_dump($result);
}
function b() {
$array1 = array();
$array2 = array(1 => "data");
$result = array_merge($array1, array($array2));
var_dump($result);
}
function c() {
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
var_dump($result);
}
function d() {
$beginning = "foo";
$end = array(1 => "bar");
$result = array_merge((array)$beginning, array($end));
var_dump($result);
}
function e() {
$v = 1;
$a = array("one" => 1);
$b = array("two" => &$v);
$r = array_merge($a, array($b));
$v = 2;
var_dump($r);
}
function f() {
$id = 100000000000022;
$a = array($id => 1);
$b = array($id => 2);
$r = array_merge($a, array($b));
var_dump($r);
}
function g() {
$a = array(1 => 50, 5 => 60);
$b = null;
var_dump(array_merge($a, array($b)));
}
a();
b();
c();
d();
e();
f();
@@ -0,0 +1,59 @@
array(4) {
["color"]=>
string(3) "red"
[0]=>
int(2)
[1]=>
int(4)
[2]=>
array(5) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
["color"]=>
string(5) "green"
["shape"]=>
string(9) "trapezoid"
[2]=>
int(4)
}
}
array(1) {
[0]=>
array(1) {
[1]=>
string(4) "data"
}
}
array(1) {
[1]=>
string(4) "data"
}
array(2) {
[0]=>
string(3) "foo"
[1]=>
array(1) {
[1]=>
string(3) "bar"
}
}
array(2) {
["one"]=>
int(1)
[0]=>
array(1) {
["two"]=>
&int(2)
}
}
array(2) {
[0]=>
int(1)
[1]=>
array(1) {
[100000000000022]=>
int(2)
}
}
@@ -0,0 +1,18 @@
<?php
$a1 = array();
$a2 = array("key1" => &$a2);
$a1 = array_merge_recursive($a1, $a2);
unset($a1);unset($a2);
$ar1 = array(
"color" => array("favorite" => "red"),
1 => 5
);
$ar2 = array(
"color" => array("favorite" => "green"),
"blue"
);
$result = array_merge_recursive($ar1, array($ar2));
var_dump($result);
@@ -0,0 +1,19 @@
array(3) {
["color"]=>
array(1) {
["favorite"]=>
string(3) "red"
}
[0]=>
int(5)
[1]=>
array(2) {
["color"]=>
array(1) {
["favorite"]=>
string(5) "green"
}
[0]=>
string(4) "blue"
}
}
+33
Ver Arquivo
@@ -0,0 +1,33 @@
<?php
function a() {
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);
var_dump($ar1);
var_dump($ar2);
}
function b() {
$ar = array(
array("10", 11, 100, 100, "a"),
array(1, 2, "2", 3, 1)
);
array_multisort($ar[0],
SORT_ASC, SORT_STRING, $ar[1],
SORT_NUMERIC, SORT_DESC);
var_dump($ar);
}
function c() {
$array = array("Alpha", "atomic", "Beta", "bank");
$array_lowercase = array_map("strtolower", $array);
array_multisort($array_lowercase,
SORT_ASC, SORT_STRING, $array);
var_dump($array);
}
a();
b();
c();
@@ -0,0 +1,58 @@
array(4) {
[0]=>
int(0)
[1]=>
int(10)
[2]=>
int(100)
[3]=>
int(100)
}
array(4) {
[0]=>
int(4)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
array(2) {
[0]=>
array(5) {
[0]=>
string(2) "10"
[1]=>
int(100)
[2]=>
int(100)
[3]=>
int(11)
[4]=>
string(1) "a"
}
[1]=>
array(5) {
[0]=>
int(1)
[1]=>
int(3)
[2]=>
string(1) "2"
[3]=>
int(2)
[4]=>
int(1)
}
}
array(4) {
[0]=>
string(5) "Alpha"
[1]=>
string(6) "atomic"
[2]=>
string(4) "bank"
[3]=>
string(4) "Beta"
}
+8
Ver Arquivo
@@ -0,0 +1,8 @@
<?php
$input = array(12, 10, 9);
var_dump(array_pad($input, 5, 0));
var_dump(array_pad($input, -7, -1));
var_dump(array_pad($input, 2, "noop"));
$a = array("9" => "b");
var_dump(array_pad($a, -3, "test"));
@@ -0,0 +1,44 @@
array(5) {
[0]=>
int(12)
[1]=>
int(10)
[2]=>
int(9)
[3]=>
int(0)
[4]=>
int(0)
}
array(7) {
[0]=>
int(-1)
[1]=>
int(-1)
[2]=>
int(-1)
[3]=>
int(-1)
[4]=>
int(12)
[5]=>
int(10)
[6]=>
int(9)
}
array(3) {
[0]=>
int(12)
[1]=>
int(10)
[2]=>
int(9)
}
array(3) {
[0]=>
string(4) "test"
[1]=>
string(4) "test"
[2]=>
string(1) "b"
}
+19
Ver Arquivo
@@ -0,0 +1,19 @@
<?php
function a() {
$input = array("orange", "banana", "apple", "raspberryu");
$fruit = array_pop($input);
var_dump($input);
}
function b() {
$input = array("orange");
$fruit = array_pop($input);
array_push($input, "banana");
var_dump($input);
var_dump($fruit);
}
a();
b();
@@ -0,0 +1,13 @@
array(3) {
[0]=>
string(6) "orange"
[1]=>
string(6) "banana"
[2]=>
string(5) "apple"
}
array(1) {
[0]=>
string(6) "banana"
}
string(6) "orange"
+5
Ver Arquivo
@@ -0,0 +1,5 @@
<?php
$a = array(2, 4, 6, 8);
var_dump(array_product($a));
var_dump(array_product(array()));
@@ -0,0 +1,2 @@
int(384)
int(0)
+6
Ver Arquivo
@@ -0,0 +1,6 @@
<?php
$input = array("orange", "banana");
$size = array_push($input, "apple", "raspberry");
var_dump($input);
var_dump($size);
@@ -0,0 +1,11 @@
array(4) {
[0]=>
string(6) "orange"
[1]=>
string(6) "banana"
[2]=>
string(5) "apple"
[3]=>
string(9) "raspberry"
}
int(4)
+9
Ver Arquivo
@@ -0,0 +1,9 @@
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
var_dump(count($rand_keys));
foreach ($rand_keys as $k) {
var_dump(array_key_exists($k, $input));
}
@@ -0,0 +1,3 @@
int(2)
bool(true)
bool(true)
+21
Ver Arquivo
@@ -0,0 +1,21 @@
<?php
function rsum($s1,$s2) {
return (int)$s1 + (int)$s2;
}
function rmul($s1,$s2) {
return (int)$s1 * (int)$s2;
}
$a = array(1, 2, 3, 4, 5);
$b = array_reduce($a, "rsum");
var_dump($b);
$c = array_reduce($a, "rmul", 10);
var_dump($c);
$d = array_reduce($a, "rmul");
var_dump($d);
$x = array();
$e = array_reduce($x, "rsum", 1);
var_dump($e);
@@ -0,0 +1,4 @@
int(15)
int(1200)
int(0)
int(1)
+69
Ver Arquivo
@@ -0,0 +1,69 @@
<?php
function a() {
$array1 = array(
"color" => "red",
2,
4
);
$array2 = array(
"a",
"b",
"color" => "green",
"shape" => "trapezoid",
4
);
$result = array_replace($array1, array($array2));
var_dump($result);
}
function b() {
$array1 = array();
$array2 = array(1 => "data");
$result = array_replace($array1, array($array2));
var_dump($result);
}
function c() {
$array1 = array();
$array2 = array(1 => "data");
$result = $array1 + $array2;
var_dump($result);
}
function d() {
$beginning = "foo";
$end = array(1 => "bar");
$result = array_replace((array)$beginning, array($end));
var_dump($result);
}
function e() {
$v = 1;
$a = array("one" => 1);
$b = array("two" => &$v);
$r = array_replace($a, array($b));
$v = 2;
var_dump($r);
}
function f() {
$id = 100000000000022;
$a = array($id => 1);
$b = array($id => 2);
$r = array_replace($a, array($b));
var_dump($r);
}
function g() {
$a = array(1 => 50, 5 => 60);
$b = null;
var_dump(array_replace($a, array($b)));
}
a();
b();
c();
d();
e();
f();
@@ -0,0 +1,55 @@
array(3) {
["color"]=>
string(3) "red"
[0]=>
array(5) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
["color"]=>
string(5) "green"
["shape"]=>
string(9) "trapezoid"
[2]=>
int(4)
}
[1]=>
int(4)
}
array(1) {
[0]=>
array(1) {
[1]=>
string(4) "data"
}
}
array(1) {
[1]=>
string(4) "data"
}
array(1) {
[0]=>
array(1) {
[1]=>
string(3) "bar"
}
}
array(2) {
["one"]=>
int(1)
[0]=>
array(1) {
["two"]=>
&int(2)
}
}
array(2) {
[100000000000022]=>
int(1)
[0]=>
array(1) {
[100000000000022]=>
int(2)
}
}
@@ -0,0 +1,12 @@
<?php
$ar1 = array(
"color" => array("favoritte" => "red"),
5
);
$ar2 = array(
10,
array("color" => array("favorite" => "green", "blue"))
);
$r = array_replace_recursive($ar1, array($ar2));
var_dump($r);
@@ -0,0 +1,22 @@
array(2) {
["color"]=>
array(1) {
["favoritte"]=>
string(3) "red"
}
[0]=>
array(2) {
[0]=>
int(10)
[1]=>
array(1) {
["color"]=>
array(2) {
["favorite"]=>
string(5) "green"
[0]=>
string(4) "blue"
}
}
}
}
+19
Ver Arquivo
@@ -0,0 +1,19 @@
<?php
function a() {
$input = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
var_dump($result);
$result_keyed = array_reverse($input, true);
var_dump($result_keyed);
}
function b() {
$input = array("php" => 4.0, 10 => 5.0, "blab" =>"b");
$result = array_reverse($input);
var_dump($result);
}
a();
b();
@@ -0,0 +1,34 @@
array(3) {
[0]=>
array(2) {
[0]=>
string(5) "green"
[1]=>
string(3) "red"
}
[1]=>
float(4)
[2]=>
string(3) "php"
}
array(3) {
[2]=>
array(2) {
[0]=>
string(5) "green"
[1]=>
string(3) "red"
}
[1]=>
float(4)
[0]=>
string(3) "php"
}
array(3) {
["blab"]=>
string(1) "b"
[0]=>
float(5)
["php"]=>
float(4)
}
+11
Ver Arquivo
@@ -0,0 +1,11 @@
<?php
$array = array(
0 => "blue",
1 => "red",
2 => "green",
3 => "red"
);
var_dump(array_search("green", $array));
var_dump(array_search("red", $array));
@@ -0,0 +1,2 @@
int(2)
int(1)
+31
Ver Arquivo
@@ -0,0 +1,31 @@
<?php
function a() {
$input = array("a" => 1, "b" => 2);
array_shift($input);
var_dump($input);
}
function b() {
$input = array("a" => 1, 23 => 2);
array_shift($input);
var_dump($input);
}
function c() {
$input = array("a" => 1, -23 => 2);
array_shift($input);
var_dump($input);
}
function d() {
$input = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($input);
var_dump($input);
var_dump($fruit);
}
a();
b();
c();
d();
@@ -0,0 +1,21 @@
array(1) {
["b"]=>
int(2)
}
array(1) {
[0]=>
int(2)
}
array(1) {
[0]=>
int(2)
}
array(3) {
[0]=>
string(6) "banana"
[1]=>
string(5) "apple"
[2]=>
string(9) "raspberry"
}
string(6) "orange"
+28
Ver Arquivo
@@ -0,0 +1,28 @@
<?php
$input = array("a", "b", "c", "d", "e");
var_dump(array_slice($input, 2));
var_dump(array_slice($input, 2, null));
var_dump(array_slice($input, -2, 1));
var_dump(array_slice($input, 0, 3));
// note the differences in the array keys
var_dump(array_slice($input, 2, -1));
var_dump(array_slice($input, 2, -1, true));
var_dump(array_slice(array("a", "b", "c"), 1, 2, true));
var_dump(array_slice(array("a", "b", "c"), 1, 2, false));
$a = array("a" => "g", 0 => "a", 1 => "b", 2 => "c");
unset($a['a']);
var_dump(array_slice($a, 1, 2, true));
var_dump(array_slice($a, 1, 2, false));
$a = array("a" => 123, 0 => "a", 1 => "b", 2 => "c");
unset($a['a']);
var_dump(array_slice($a, 1, 2, true));
var_dump(array_slice($a, 1, 2, false));
var_dump(array_slice(array(123, "b", "c"), 1, 2, true));
var_dump(array_slice(array(123, "b", "c"), 1, 2, false));
@@ -0,0 +1,88 @@
array(3) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
[2]=>
string(1) "e"
}
array(3) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
[2]=>
string(1) "e"
}
array(1) {
[0]=>
string(1) "d"
}
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "c"
[1]=>
string(1) "d"
}
array(2) {
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
array(2) {
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "b"
[1]=>
string(1) "c"
}
array(2) {
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "b"
[1]=>
string(1) "c"
}
array(2) {
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "b"
[1]=>
string(1) "c"
}
array(2) {
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(2) {
[0]=>
string(1) "b"
[1]=>
string(1) "c"
}
+34
Ver Arquivo
@@ -0,0 +1,34 @@
<?php
$params = array("a" => "aaa", "0" => "apple");
unset($params['a']);
array_splice($params, 0, 0, array(123 => "test"));
var_dump($params);
$params = array("a" => "aaa", "1" => "apple");
unset($params['a']);
array_splice($params, 0, 0, array(123 => "test"));
var_dump($params);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2, null);
var_dump($input, array("red", "green"));
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
var_dump($input, array("red", "yellow"));
$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, 4, "orange");
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
var_dump($input);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
var_dump($input);
@@ -0,0 +1,72 @@
array(2) {
[0]=>
string(4) "test"
[1]=>
string(5) "apple"
}
array(2) {
[0]=>
string(4) "test"
[1]=>
string(5) "apple"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(6) "yellow"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(6) "yellow"
}
array(2) {
[0]=>
string(3) "red"
[1]=>
string(6) "orange"
}
array(5) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
[2]=>
string(4) "blue"
[3]=>
string(5) "black"
[4]=>
string(6) "maroon"
}
array(5) {
[0]=>
string(3) "red"
[1]=>
string(5) "green"
[2]=>
string(4) "blue"
[3]=>
string(6) "purple"
[4]=>
string(6) "yellow"
}
+6
Ver Arquivo
@@ -0,0 +1,6 @@
<?php
$a = array(2, 4, 6, 8);
var_dump(array_sum($a));
$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
var_dump(array_sum($b));
@@ -0,0 +1,2 @@
int(20)
float(6.9)
+11
Ver Arquivo
@@ -0,0 +1,11 @@
<?php
function comp_func($n1,$n2) {
$n1=(int)$n1; $n2=(int)$n2;
return $n1 === $n2 ? 0 : ($n1 > $n2 ? 1 : -1);
}
$a = array("0.1" => 9, "0.5" => 12, 0 => 23, 1 => 4, 2 => -15);
$b = array("0.2" => 9, "0.5" => 22, 0 => 3, 1 => 4, 2 => -15);
$result = array_udiff($a, $b, "comp_func");
var_dump($result);
@@ -0,0 +1,6 @@
array(2) {
["0.5"]=>
int(12)
[0]=>
int(23)
}
@@ -0,0 +1,12 @@
<?php
function comp_func($n1,$n2) {
$n1=(int)$n1; $n2=(int)$n2;
return $n1 === $n2 ? 0 : ($n1 > $n2 ? 1 : -1);
}
$a = array("0.1" => 9, "0.5" => 12, 0 => 23, 1 => 4, 2 => -15);
$b = array("0.2" => 9, "0.5" => 22, 0 => 3, 1 => 4, 2 => -15);
$result = array_udiff_assoc($a, $b, "comp_func");
var_dump($result);
@@ -0,0 +1,8 @@
array(3) {
["0.1"]=>
int(9)
["0.5"]=>
int(12)
[0]=>
int(23)
}
@@ -0,0 +1,15 @@
<?php
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "GREEN",
"B" => "brown",
"yellow",
"red"
);
var_dump(array_uintersect($array1, $array2, 'strcasecmp'));
@@ -0,0 +1,8 @@
array(3) {
["a"]=>
string(5) "green"
["b"]=>
string(5) "brown"
[0]=>
string(3) "red"
}
@@ -0,0 +1,15 @@
<?php
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "GREEN",
"B" => "brown",
"yellow",
"red"
);
var_dump(array_uintersect_assoc($array1, $array2, 'strcasecmp'));
@@ -0,0 +1,4 @@
array(1) {
["a"]=>
string(5) "green"
}
@@ -0,0 +1,16 @@
<?php
$array1 = array(
"a" => "green",
"b" => "brown",
"c" => "blue",
"red"
);
$array2 = array(
"a" => "GREEN",
"B" => "brown",
"yellow",
"red"
);
var_dump(
array_uintersect_uassoc($array1, $array2, 'strcasecmp', 'strcasecmp'));
@@ -0,0 +1,6 @@
array(2) {
["a"]=>
string(5) "green"
["b"]=>
string(5) "brown"
}
+56
Ver Arquivo
@@ -0,0 +1,56 @@
<?php
function a() {
$input = array(
"a" => "green",
"red",
"b" => "green",
"blue",
"red"
);
$result = array_unique($input);
var_dump($result);
}
function b() {
$input = array(
4,
"4",
"3",
4,
3
);
$result = array_unique($input);
var_dump($result);
}
function c() {
$input = array(
"a" => "A",
"b" => "C",
0 => "1",
2 => "01",
1 => 1,
"c" => "C"
);
var_dump(array_unique($input, SORT_STRING));
var_dump(array_unique($input, SORT_NUMERIC));
var_dump(array_unique($input, SORT_REGULAR));
}
function d() {
$input = array(
1 => 1,
'a' => 'A',
'b' => 'C',
0 => '1',
2 => '01',
'c' => 'C'
);
var_dump(array_unique($input, SORT_REGULAR));
}
a();
b();
c();
d();
@@ -0,0 +1,48 @@
array(3) {
["a"]=>
string(5) "green"
[0]=>
string(3) "red"
[1]=>
string(4) "blue"
}
array(2) {
[0]=>
int(4)
[2]=>
string(1) "3"
}
array(4) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "C"
[0]=>
string(1) "1"
[2]=>
string(2) "01"
}
array(2) {
["a"]=>
string(1) "A"
[0]=>
string(1) "1"
}
array(3) {
["a"]=>
string(1) "A"
["b"]=>
string(1) "C"
[0]=>
string(1) "1"
}
array(4) {
[1]=>
int(1)
["a"]=>
string(1) "A"
["b"]=>
string(1) "C"
[0]=>
string(1) "1"
}
+10
Ver Arquivo
@@ -0,0 +1,10 @@
<?php
$q = array("orange", "banana");
array_unshift($q, "apple", "raspberry");
var_dump($q);
$q = array(0 => "orange", 1 => "banana", "a" => "dummy");
unset($q['a']);
array_unshift($q, "apple", "raspberry");
var_dump($q);
@@ -0,0 +1,20 @@
array(4) {
[0]=>
string(5) "apple"
[1]=>
string(9) "raspberry"
[2]=>
string(6) "orange"
[3]=>
string(6) "banana"
}
array(4) {
[0]=>
string(5) "apple"
[1]=>
string(9) "raspberry"
[2]=>
string(6) "orange"
[3]=>
string(6) "banana"
}
+4
Ver Arquivo
@@ -0,0 +1,4 @@
<?php
$array = array("size" => "XL", "color" =>"gold");
var_dump(array_values($array));
@@ -0,0 +1,6 @@
array(2) {
[0]=>
string(2) "XL"
[1]=>
string(4) "gold"
}
+18
Ver Arquivo
@@ -0,0 +1,18 @@
<?php
function test_print($item,$key) {
echo "$key: $item\n";
}
function test_alter(&$item,$key,$prefix) {
$item = $prefix.': '.$item;
}
$fruits = array("d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple");
array_walk($fruits, "test_print");
array_walk($fruits, "test_alter", "fruit");
array_walk($fruits, "test_print");
@@ -0,0 +1,8 @@
d: lemon
a: orange
b: banana
c: apple
d: fruit: lemon
a: fruit: orange
b: fruit: banana
c: fruit: apple
@@ -0,0 +1,10 @@
<?php
function test_print($item,$key) {
echo "$key: $item\n";
}
$sweet = array("a" => "apple", "b" => "banana");
$fruits = array("sweet" => $sweet, "sour" => "lemon");
array_walk_recursive($fruits, "test_print");
@@ -0,0 +1,3 @@
a: apple
b: banana
sour: lemon
+30
Ver Arquivo
@@ -0,0 +1,30 @@
<?php
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
arsort($fruits);
var_dump($fruits);
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
ksort($fruits);
var_dump($fruits);
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
krsort($fruits);
var_dump($fruits);
+30
Ver Arquivo
@@ -0,0 +1,30 @@
array(4) {
["a"]=>
string(6) "orange"
["d"]=>
string(5) "lemon"
["b"]=>
string(6) "banana"
["c"]=>
string(5) "apple"
}
array(4) {
["a"]=>
string(6) "orange"
["b"]=>
string(6) "banana"
["c"]=>
string(5) "apple"
["d"]=>
string(5) "lemon"
}
array(4) {
["d"]=>
string(5) "lemon"
["c"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["a"]=>
string(6) "orange"
}
+35
Ver Arquivo
@@ -0,0 +1,35 @@
<?php
$fruits = array(
"d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple"
);
asort($fruits);
var_dump($fruits);
$arr = array("at", "\xe0s", "as");
i18n_loc_set_default("en_US");
asort($arr, 0, true);
$arr = array("num2ber", "num1ber", "num10ber");
i18n_loc_set_default("en_US");
i18n_loc_set_attribute(UCOL_NUMERIC_COLLATION, UCOL_ON);
i18n_loc_set_strength(UCOL_PRIMARY);
asort($arr, SORT_REGULAR, true);
i18n_loc_set_attribute(UCOL_NUMERIC_COLLATION, UCOL_DEFAULT);
i18n_loc_set_strength(UCOL_DEFAULT);
var_dump($arr);
$arr = array("G\xediron", // &iacute; (Latin-1)
"G\xc3\xb3nzales", // &oacute; (UTF-8)
"G\xc3\xa9 ara", // &eacute; (UTF-8)
"G\xe1rcia"); // &aacute; (Latin-1)
i18n_loc_set_default("en_US");
i18n_loc_set_attribute(UCOL_NUMERIC_COLLATION, UCOL_ON);
i18n_loc_set_strength(UCOL_PRIMARY);
asort($arr, SORT_REGULAR, true);
i18n_loc_set_attribute(UCOL_NUMERIC_COLLATION, UCOL_DEFAULT);
i18n_loc_set_strength(UCOL_DEFAULT);
var_dump($arr);
+28
Ver Arquivo
@@ -0,0 +1,28 @@
array(4) {
["c"]=>
string(5) "apple"
["b"]=>
string(6) "banana"
["d"]=>
string(5) "lemon"
["a"]=>
string(6) "orange"
}
array(3) {
[1]=>
string(7) "num1ber"
[0]=>
string(7) "num2ber"
[2]=>
string(8) "num10ber"
}
array(4) {
[0]=>
string(6) "Gíiron"
[1]=>
string(9) "Gónzales"
[2]=>
string(7) "Gé ara"
[3]=>
string(6) "Gárcia"
}
@@ -0,0 +1,4 @@
<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
var_dump(array_change_key_case($input_array, CASE_UPPER));
@@ -0,0 +1,6 @@
array(2) {
["FIRST"]=>
int(1)
["SECOND"]=>
int(4)
}
+23
Ver Arquivo
@@ -0,0 +1,23 @@
<?php
$a = array();
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));
$b = array();
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
var_dump(count(null));
var_dump(count(false));
$food = array(
"fruits" => array("orange", "banana", "apple"),
"veggie" => array("carrot", "collard", "pea")
);
var_dump(count($food, COUNT_RECURSIVE));
var_dump(count($food));
+6
Ver Arquivo
@@ -0,0 +1,6 @@
int(3)
int(3)
int(0)
int(1)
int(8)
int(2)
+3
Ver Arquivo
@@ -0,0 +1,3 @@
<?php
$array = array(1, "hello", 1, "world", "hello");
var_dump(array_count_values($array));
@@ -0,0 +1,8 @@
array(3) {
[1]=>
int(2)
["hello"]=>
int(2)
["world"]=>
int(1)
}
+25
Ver Arquivo
@@ -0,0 +1,25 @@
<?php
function a() {
$transport = array("foot", "bike", "car", "plane");
var_dump(current($transport));
var_dump(next($transport));
var_dump(current($transport));
var_dump(prev($transport));
var_dump(end($transport));
var_dump(current($transport));
}
function b() {
$arr = array();
var_dump(current($arr));
}
function c() {
$arr = array(array());
var_dump(current($arr));
}
a();
b();
c();
@@ -0,0 +1,9 @@
string(4) "foot"
string(4) "bike"
string(4) "bike"
string(4) "foot"
string(5) "plane"
string(5) "plane"
bool(false)
array(0) {
}
+32
Ver Arquivo
@@ -0,0 +1,32 @@
<?php
function a() {
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
var_dump($bar);
}
function b() {
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
var_dump($bar);
}
function c() {
$fruit = array("a" => "apple", "b" => "banana", "c" => "cranberry");
reset($fruit);
$output = '';
while (true) {
$item = each($fruit);
if ($item === false) break;
$output .= $item[0];
$output .= ": ";
$output .= $item[1];
$output .= "\n";
}
var_dump($output);
}
a();
b();
c();

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais