[ 'aa' => 1, 'ab' => [ 'aba', 'ab0', [ 3, 'c', ], 4, ], ], 2 => '2a', ]; $actual = []; $actual = ArrayUtils::setArray('a/aa', $actual, 1, '/'); $actual = ArrayUtils::setArray('a/ab', $actual, ['aba'], '/'); $actual = ArrayUtils::setArray('a/ab', $actual, 'abb', '/'); $actual = ArrayUtils::setArray('2', $actual, '2a', '/'); $actual = ArrayUtils::setArray('a/ab/1', $actual, 'ab0', '/', true); $actual = ArrayUtils::setArray('a/ab', $actual, [3, 4], '/'); $actual = ArrayUtils::setArray('a/ab/2', $actual, 'c', '/'); self::assertEquals($expected, $actual); self::assertEquals('ab0', ArrayUtils::getArray('a/ab/1', $expected)); } public function testArrayInRecursive() : void { $expected = [ 'a' => [ 'aa' => 1, 'ab' => [ 'aba', 'ab0', ], ], 2 => '2a', ]; self::assertTrue(ArrayUtils::inArrayRecursive('aba', $expected)); self::assertTrue(ArrayUtils::inArrayRecursive('2a', $expected)); self::assertTrue(ArrayUtils::inArrayRecursive('2a', $expected, 2)); self::assertFalse(ArrayUtils::inArrayRecursive('2a', $expected, 3)); self::assertFalse(ArrayUtils::inArrayRecursive('aba', ArrayUtils::unsetArray('a/ab', $expected, '/'))); } public function testArrayConversion() : void { $expected = [ 'a' => [ 'aa' => 1, 'ab' => [ 'aba', 'ab0', ], ], 2 => '2a', 3 => false, 'c' => null, ]; $expected_str = "['a' => ['aa' => 1, 'ab' => [0 => 'aba', 1 => 'ab0', ], ], 2 => '2a', 3 => false, 'c' => null, ]"; self::assertEquals($expected_str, ArrayUtils::stringify($expected)); self::assertEquals('2;3;1;"""Text;"' . "\n", ArrayUtils::arrayToCsv(['a' => 2, 3, 1, '"Text;'], ';', '"', '\\')); } public function testArrayRecursiveManipulation() : void { $numArr = [1, 2, 3, 4]; $numArrRec = [1, [2, [3, 4]]]; self::assertEquals(10, ArrayUtils::arraySumRecursive($numArrRec)); self::assertEquals($numArr, ArrayUtils::arrayFlatten($numArrRec)); } public function testArraySum() : void { $numArr = [1, 2, 3, 4]; self::assertEquals(10, ArrayUtils::arraySum($numArr)); self::assertEquals(9, ArrayUtils::arraySum($numArr, 1)); self::assertEquals(5, ArrayUtils::arraySum($numArr, 1, 2)); } public function testArrayAllIn() : void { $numArr = [1, 2, 3, 4]; self::assertTrue(ArrayUtils::allInArray([], $numArr)); self::assertTrue(ArrayUtils::allInArray([1, 3, 4], $numArr)); self::assertTrue(ArrayUtils::allInArray([1, 2, 3, 4], $numArr)); self::assertFalse(ArrayUtils::allInArray([1, 5, 3], $numArr)); } public function testArrayAnyIn() : void { $numArr = [1, 2, 3, 4]; self::assertTrue(ArrayUtils::anyInArray($numArr, [2, 6, 8])); self::assertFalse(ArrayUtils::anyInArray($numArr, [10, 22])); } public function testArg() : void { self::assertNull(ArrayUtils::hasArg('--testNull', $_SERVER['argv'])); self::assertNull(ArrayUtils::getArg('--testNull', $_SERVER['argv'])); if (ArrayUtils::getArg('--configuration', $_SERVER['argv']) !== null) { self::assertGreaterThan(0, ArrayUtils::hasArg('--configuration', $_SERVER['argv'])); self::assertTrue(\stripos(ArrayUtils::getArg('--configuration', $_SERVER['argv']), '.xml') !== false); } } public function testInvalidArrayStringify() : void { self::expectException(\InvalidArgumentException::class); ArrayUtils::stringify([new class() {}]); } }