示例#1
0
 public function testForget()
 {
     $array = ['products' => ['desk' => ['price' => 100]]];
     Arr::forget($array, null);
     $this->assertEquals(['products' => ['desk' => ['price' => 100]]], $array);
     $array = ['products' => ['desk' => ['price' => 100]]];
     Arr::forget($array, []);
     $this->assertEquals(['products' => ['desk' => ['price' => 100]]], $array);
     $array = ['products' => ['desk' => ['price' => 100]]];
     Arr::forget($array, 'products.desk');
     $this->assertEquals(['products' => []], $array);
     $array = ['products' => ['desk' => ['price' => 100]]];
     Arr::forget($array, 'products.desk.price');
     $this->assertEquals(['products' => ['desk' => []]], $array);
     $array = ['products' => ['desk' => ['price' => 100]]];
     Arr::forget($array, 'products.final.price');
     $this->assertEquals(['products' => ['desk' => ['price' => 100]]], $array);
     $array = ['shop' => ['cart' => [150 => 0]]];
     Arr::forget($array, 'shop.final.cart');
     $this->assertEquals(['shop' => ['cart' => [150 => 0]]], $array);
     $array = ['products' => ['desk' => ['price' => ['original' => 50, 'taxes' => 60]]]];
     Arr::forget($array, 'products.desk.price.taxes');
     $this->assertEquals(['products' => ['desk' => ['price' => ['original' => 50]]]], $array);
     $array = ['products' => ['desk' => ['price' => ['original' => 50, 'taxes' => 60]]]];
     Arr::forget($array, 'products.desk.final.taxes');
     $this->assertEquals(['products' => ['desk' => ['price' => ['original' => 50, 'taxes' => 60]]]], $array);
     $array = ['products' => ['desk' => ['price' => 50], null => 'something']];
     Arr::forget($array, ['products.amount.all', 'products.desk.price']);
     $this->assertEquals(['products' => ['desk' => [], null => 'something']], $array);
     // Only works on first level keys
     $array = ['*****@*****.**' => 'Joe', '*****@*****.**' => 'Jane'];
     Arr::forget($array, '*****@*****.**');
     $this->assertEquals(['*****@*****.**' => 'Jane'], $array);
     // Does not work for nested keys
     $array = ['emails' => ['*****@*****.**' => ['name' => 'Joe'], 'jane@localhost' => ['name' => 'Jane']]];
     Arr::forget($array, ['*****@*****.**', 'emails.jane@localhost']);
     $this->assertEquals(['emails' => ['*****@*****.**' => ['name' => 'Joe']]], $array);
 }