public function test_data_get() { $object = (object) array('users' => array('name' => array('Joe', 'TESTER'))); $array = array((object) array('users' => array((object) array('name' => 'Joe')))); $array_access = new Array_Access_Stub(array('price' => 56, 'user' => new Array_Access_Stub(array('name' => 'Mike')))); $this->assertEquals('Joe', wpdevsclub_data_get($object, 'users.name.0')); $this->assertEquals('Joe', wpdevsclub_data_get($array, '0.users.0.name')); $this->assertNull(wpdevsclub_data_get($array, '0.users.3')); $this->assertEquals('Not found', wpdevsclub_data_get($array, '0.users.3', 'Not found')); $this->assertEquals('Not found', wpdevsclub_data_get($array, '0.users.3', function () { return 'Not found'; })); $this->assertEquals(56, wpdevsclub_data_get($array_access, 'price')); $this->assertEquals('Mike', wpdevsclub_data_get($array_access, 'user.name')); $this->assertEquals('void', wpdevsclub_data_get($array_access, 'foo', 'void')); $this->assertEquals('void', wpdevsclub_data_get($array_access, 'user.foo', 'void')); $this->assertNull(wpdevsclub_data_get($array_access, 'foo')); $this->assertNull(wpdevsclub_data_get($array_access, 'user.foo')); }
/** * Pluck an array of values from an array. * * @since 1.0.0 * * @param array $array * @param string $value * @param string $key * @return array */ public static function pluck($array, $value, $key = null) { $results = array(); foreach ($array as $item) { $item_value = wpdevsclub_data_get($item, $value); if (is_null($item_value)) { continue; } if (is_null($key)) { $results[] = $item_value; } else { $item_key = wpdevsclub_data_get($item, $key); $results[$item_key] = $item_value; } } return $results; }
/** * Get the "group by" key value. * * @param callable|string $group_by * @param string $key * @param mixed $value * @return string */ protected function getGroupByKey($group_by, $key, $value) { if (!is_string($group_by) && is_callable($group_by)) { return $group_by($value, $key); } return wpdevsclub_data_get($value, $group_by); }