Ejemplo n.º 1
0
 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'));
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 /**
  * 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);
 }