ObjectArrayHelper

类名: Imi\Util\ObjectArrayHelper

对象及数组帮助类

智能识别数组和对象,支持对a.b.c这样的name属性进行操作

方法

以下所有示例,前提代码为:

  1. $data = [
  2. 'a' => [
  3. 'b' => [
  4. 'c' => '111',
  5. ],
  6. ],
  7. ];
  8. // 也可以是任意对象及数组的混合用法,如:
  9. $data = new \stdClass;
  10. $data->a = [];
  11. $data->a['b'] = new \stdClass;
  12. $data->a['b']->c = '111';

get

获取值

  1. // 111
  2. echo ObjectArrayHelper::get($data, 'a.b.c');
  3. // 222
  4. echo ObjectArrayHelper::get($data, 'a.b.c.d', '222');

set

设置值

  1. ObjectArrayHelper::set($data, 'a.b.c2', '333');

remove

移除值

  1. ObjectArrayHelper::remove($data, 'a.b.c2');

remove

值是否存在

  1. var_dump(ObjectArrayHelper::exists($data, 'a.b.c2'));

filter

过滤属性

  1. $data = [
  2. 'id' => 1,
  3. 'name' => 'imi',
  4. ];
  5. // $data = new stdClass;
  6. // $data->id = 1;
  7. // $data->name = 'imi';
  8. // 以上两个都支持
  9. // 只保留 name 字段
  10. var_dump(ObjectArrayHelper::filter($data, ['name']));
  11. // 剔除 name 字段
  12. var_dump(ObjectArrayHelper::filter($data, ['name'], 'deny'));