Skip to content

Commit 8b1329c

Browse files
committed
Added the force parameter to the assign method.
1 parent 57d4981 commit 8b1329c

3 files changed

Lines changed: 9 additions & 7 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"array", "array helper", "array utils", "array merge", "library", "helper", "support"
66
],
77
"type": "library",
8-
"version": "1.0.0",
8+
"version": "1.0.1",
99
"homepage": "https://github.com/nabeghe/arrayer-php",
1010
"license": "MIT",
1111
"autoload": {

src/Traits/NabegheArrTrait.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@
55
trait NabegheArrTrait
66
{
77
/**
8-
* Assigns a value to an array if the key doesn't exist.
8+
* Assigns a value to a key in an array.
9+
*
910
* @param array $data
1011
* @param mixed $key
1112
* @param mixed $value
13+
* @param bool $force Optional. If false, the new value will not be set if the key already exists. Drfault true.
1214
*/
13-
public static function assign(&$data, $key, $value)
15+
public static function assign(&$data, $key, $value, $force = true)
1416
{
15-
if (!array_key_exists($key, $data)) {
17+
if ($force || !array_key_exists($key, $data)) {
1618
$data[$key] = $value;
1719
}
1820
}

tests/ArrTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ public function testAccessible()
1818
public function testAssign()
1919
{
2020
$data = ['key_1' => 'value_1', 'key_2' => null];
21-
Arr::assign($data, 'key_1', 'new_value_1');
22-
Arr::assign($data, 'key_2', 'new_value_2');
23-
Arr::assign($data, 'key_3', 'new_value_3');
21+
Arr::assign($data, 'key_1', 'new_value_1', false);
22+
Arr::assign($data, 'key_2', 'new_value_2', false);
23+
Arr::assign($data, 'key_3', 'new_value_3', false);
2424
$this->assertSame(['key_1' => 'value_1', 'key_2' => null, 'key_3' => 'new_value_3'], $data);
2525
}
2626

0 commit comments

Comments
 (0)