/** * @covers \CodeLapse\Arr::delete * @dataProvider provider_personInfo */ public function testDelete($person) { // Simple $deletion1 = $person; Arr::delete($deletion1, 'name'); $this->assertFalse(array_key_exists('name', $deletion1), 'Arr::delete 1'); // Nested $deletion2 = $person; Arr::delete($deletion2, 'location.coutry'); $this->assertTrue(array_key_exists('location', $deletion2), 'Arr::delete 2-1'); $this->assertFalse(array_key_exists('country', $deletion2), 'Arr::delete 2-2'); // Multiple deletion with Simple & Nested $deletion3 = $person; Arr::delete($deletion3, array('location.country', 'tags')); $this->assertTrue(array_key_exists('location', $deletion3), 'Arr::delete 3-1'); $this->assertFalse(array_key_exists('country', $deletion3['location']), 'Arr::delete 3-2'); $this->assertFalse(array_key_exists('tags', $deletion3), 'Arr::delete 3-3'); // Delete non exists key $deletion4 = $person; Arr::delete($deletion4, array('noExists', 'deep.noExists')); $this->assertTrue(empty(Arr::diffRecursive($deletion4, $person)), 'Arr::delete 4'); Arr::delete($deletion4, 'name'); $this->assertFalse(empty(Arr::diffRecursive($deletion4, $person)), 'Arr::delete 5'); }
/** * 配列から指定されたキーを除いた配列を生成します。 * * ```php * $user = ['id' => 't0m1137', 'password' => 'somepasshash']; * $safeUser = Arr::except($user, 'password'); * echo json_encode($safeUser); // => {"id":"t0m1137"} * ``` * * @param $array $array 要素を取り除く配列 * @param string|array $exceptKeys 除外するキーの配列 * @return array */ public static function except(array $array, $exceptKeys) { Arr::delete($array, $exceptKeys); return $array; }