Chuyển đổi mảng kết hợp thành đối tượng php

Các đối tượng và mảng là những phần thiết yếu trong lập trình hàng ngày của chúng ta. Chuyển đổi đối tượng PHP thành mảng và mảng thành đối tượng là những yêu cầu khá phổ biến. Chúng tôi đang đề cập đến ba cách mà bạn có thể sử dụng để chuyển đổi đối tượng PHP thành một mảng

Ngược lại, nếu bạn đang tìm kiếm quy trình ngược lại, tôi. e. chuyển đổi một mảng thành đối tượng thì đây là liên kết của bài viết. Có các phương thức để chuyển đổi mảng thành đối tượng cũng hoạt động trên mảng nhiều chiều

1. Đánh máy đối tượng thành mảng

Đối tượng thành mảng hoặc chuyển đổi mảng thành đối tượng, typecasting là giải pháp dễ dàng nhất nếu đầu vào có cấu trúc tốt. Bằng các phương tiện có cấu trúc tốt, đầu vào có các khóa hợp lệ. Dưới đây là mã để đánh máy và chuyển đổi đối tượng thành mảng

Đánh máy đối tượng thành mảng

0

1

 

$mảng = [mảng] $object;

2. Chuyển đổi đối tượng PHP thành mảng bằng các hàm JSON

Các hàm JSON của PHP cũng có thể thực hiện chuyển đổi đối tượng thành mảng hoặc ngược lại một cách thông minh. Ngoài ra, nó hoạt động hoàn hảo với các đối tượng lồng nhau để chuyển đổi chúng thành một mảng kết hợp. Đây là giải pháp tốt nhất nếu bạn muốn chuyển đổi đệ quy sâu đầy đủ

Đối tượng PHP thành mảng với các hàm JSON

0

1

 

$mảng = json_decode[json_encode[object], true];

Đầu tiên, hàm json_encode[] chuyển đổi đối tượng thành chuỗi JSON. Hơn nữa, tham số thứ hai trong hàm json_decode[] yêu cầu PHP chuyển đổi chuỗi được mã hóa thành một mảng kết hợp

Bất chấp cách bạn sử dụng để chuyển đổi đối tượng PHP thành mảng, hãy lưu ý một số điều. Để chuyển đổi trơn tru, luôn luôn

  • Tránh tạo đối tượng StdClass với thuộc tính số nguyên. Chúng trở nên khá khó truy cập thậm chí bạn có thể nhìn thấy chúng bằng cách sử dụng print_r[] hoặc tương tự
  • Khai báo các đối tượng là thành viên công khai của lớp. Nếu không, các phím mảng sẽ có các ký hiệu lạ và bẩn. Bạn có thể kiểm tra về chúng tại cho PHP

3. Chuyển đối tượng sang mảng sử dụng get_object_vars[]

Biến một đối tượng thành một mảng bằng get_object_vars[] là một phương pháp ít được biết đến nhưng khá tốt. Ngoài ra, nền tảng viết blog phổ biến WordPress sử dụng nó rất nhiều. Một ví dụ điển hình về chuyển đổi đối tượng thành mảng được đưa ra dưới đây

Chuyển đối tượng sang mảng sử dụng get_object_vars[]

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

 

lớp màu sắc {

    

    công khai $đỏ = 'ff0000';

    riêng tư $xanh = '00f00';

    được bảo vệ $xanh lam = '0000ff';

    

    công chúng $đen, $white;

    

    tĩnh $cầu vồng;

  

    hàm công khai get_object_as_array[] {

        return get_object_vars[$this];

    }

}

 

$clrs = mới màu;

var_dump[get_object_vars[$clrs]];

 

/*

mảng[3] {

["đỏ"]=>

chuỗi [6] "ff0000"

["đen"]=>

VÔ GIÁ TRỊ

["trắng"]=>

VÔ GIÁ TRỊ

}

*/

 

 

$arr = $clrs->get_object_as_array[];

var_dump[$arr];

 

/*

mảng[5] {

["đỏ"]=>

chuỗi [6] "ff0000"

["xanh"]=>

chuỗi [5] "00f00"

["màu xanh"]=>

chuỗi [6] "0000ff"

["đen"]=>

VÔ GIÁ TRỊ

["trắng"]=>

VÔ GIÁ TRỊ

}

*/

Vì vậy, bạn thấy rằng hàm get_object_vars[] trả về một mảng kết hợp của một đối tượng đã xác định có thể truy cập được trong phạm vi. Ngoài ra, nó không nhận các thuộc tính không tĩnh cho đối tượng được chỉ định trong tài khoản. Ngoài ra, nếu một thuộc tính không chứa giá trị, nó sẽ được trả về với giá trị NULL

Các cách khác để chuyển đổi đối tượng PHP thành mảng

Cuối cùng, những điều trên là 3 cách ưa thích mà chúng tôi muốn chia sẻ để chuyển đổi một đối tượng PHP thành một mảng. Thật vậy, có nhiều cách khác cho cùng một. Lặp lại đối tượng thông qua vòng lặp foreach hoặc sử dụng API Reflection của PHP và các lệnh gọi hàm đệ quy là một vài trong số đó

Tuy nhiên, chúng tôi chưa thảo luận chi tiết về chúng ở đây vì cá nhân chúng tôi không thích những dòng mã dài cho nhu cầu chung. Tuy nhiên, chúng có thể hữu ích trong các trường hợp hacky. Vì vậy, thật đáng để cung cấp mã cho họ

Đối tượng thành mảng, phép lặp, API phản chiếu, hàm đệ quy

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

 

// Chuyển đổi thủ công sử dụng hàm đệ quy

function objectToArray[$obj] {

    $arr = array[];

    foreach [$obj as $k => $v]

        $a[$k] = [is_array[$v] |. is_object[$v] . ] ? objectToArray[$v] : $v;

    return $arr;

}

 

 

/*

Reflection API, getter và setter cho chuyển đổi đối tượng thành mảng

Sửa đổi khả năng hiển thị của tài sản

*/

hàm object_to_array_reflection[$obj] {

    $rfc = mới ReflectionClass[get_class[$obj]];

    $arr = array[];

    foreach [$rfc->getProperties[] as $prop] {

        $tiền đề - >setAccessible[true];

        $arr[$prop->getName[]] = $prop->getValue[$obj];

        $tiền đề - >setAccessible[false];

    }

    return $arr;

}

 

 

// Một chức năng tùy chỉnh khác sử dụng get_object_vars[]

hàm object2Array[$obj] {

    if [is_object[$obj]] {

        $obj = get_object_vars[$obj];

    }

    // Sử dụng __METHOD__ thay vì __FUNCTION__ nếu sử dụng hàm bên trong một lớp.

    return [is_array[$obj] ? array_map[__FUNCTION__, $obj] : $obj];

}

Vì vậy, ở đây bài overs. Hãy cho chúng tôi biết cách ưa thích của bạn để chuyển đổi một đối tượng thành một mảng trong PHP. Vui lòng sử dụng mẫu nhận xét để cập nhật cho chúng tôi thông tin phản hồi của bạn

Làm cách nào để biến một mảng thành một đối tượng trong PHP?

Để chuyển đổi một mảng thành đối tượng, stdClass[] được sử dụng . stdClass[] là một lớp trống, được sử dụng để chuyển các loại khác thành đối tượng. Nếu một đối tượng được chuyển đổi thành đối tượng, thì nó không bị sửa đổi. Tuy nhiên, nếu kiểu đối tượng được chuyển đổi/ép kiểu thì một thể hiện của stdClass được tạo, nếu nó không phải là NULL.

Làm cách nào để chuyển đổi mảng kết hợp trong PHP?

Nó lưu trữ các giá trị phần tử liên kết với các giá trị chính thay vì theo thứ tự chỉ mục tuyến tính. Phương pháp 1. Sử dụng phương thức json_decode và json_encode . Hàm json_decode chấp nhận chuỗi được mã hóa JSON và chuyển đổi nó thành một biến PHP, mặt khác, json_encode trả về một chuỗi được mã hóa JSON cho một giá trị nhất định.

Làm cách nào để chuyển đổi mảng kết hợp PHP thành đối tượng JavaScript?

Sử dụng phương thức json_encode[] để đạt được điều này. $myArr = mảng['Amit', 'amit@example. com']; .

Làm cách nào để chuyển đổi mảng nhiều chiều thành đối tượng trong PHP?

Sự kết hợp của các hàm mã hóa và giải mã JSON của PHP có thể thực hiện việc chuyển đổi một cách kỳ diệu. $obj = json_decode[json_encode[$array]]; Đầu tiên, json_encode[$array] chuyển đổi toàn bộ mảng đa chiều thành chuỗi JSON. Sau đó, json_decode[$string] sẽ chuyển đổi chuỗi JSON thành đối tượng stdClass.

Chủ Đề