1: | <?php |
2: | |
3: | namespace Teto\Object; |
4: | |
5: | use function is_array; |
6: | |
7: | |
8: | |
9: | |
10: | |
11: | |
12: | |
13: | |
14: | class Helper |
15: | { |
16: | |
17: | |
18: | |
19: | |
20: | |
21: | |
22: | public static function toArray($ary_or_obj, $is_toplevel = true) |
23: | { |
24: | if ($ary_or_obj instanceof ToArrayInterface) { |
25: | return $ary_or_obj->toArray(); |
26: | } |
27: | |
28: | if (!is_array($ary_or_obj) && !$ary_or_obj instanceof \Traversable) { |
29: | return $is_toplevel ? null : $ary_or_obj; |
30: | } |
31: | |
32: | $array = []; |
33: | foreach ($ary_or_obj as $i => $elm) { |
34: | $array[$i] = Helper::toArray($elm, false); |
35: | } |
36: | |
37: | return $array; |
38: | } |
39: | } |
40: | |