Mảng đa chiều PHP thành mảng JavaScript

Có một số cách để chuyển đổi một mảng nhiều chiều thành đối tượng. Nếu bạn là nhà phát triển PHP thì bạn đã nhận thấy rằng chuyển đổi mảng thành đối tượng là một nhu cầu phổ biến. Vì vậy, chúng tôi đang đề cập đến ba phương pháp để chuyển đổi một mảng kết hợp đa chiều hoặc đơn giản thành đối tượng

Giống như bạn, chúng tôi cũng không phải là người thích gõ dấu ngoặc nhọn và dấu ngoặc kép xung quanh các phím mảng. Nó khiến chúng ta nhấn thêm các lần nhấn phím. Hơn nữa, việc sử dụng mảng không giúp mã luôn gọn gàng và dễ đọc hơn so với các đối tượng. Vì những lý do này, chúng tôi luôn ưu tiên đối tượng hơn một mảng

Truyền mảng không lồng vào đối tượng

Truyền mảng không lồng vào đối tượng

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

 

$mảng = mảng[

    'red' = > 'ff0000' '00ff00' '0000ff' ff0000

[xanh] => 00ff00

[màu xanh] => 0000ff

]

*/

 

// Sử dụng nó như

echo $obj - >green;

Đây là cách ưa thích nhất để chuyển đổi một mảng thành đối tượng. Nhưng nếu có chỉ khi mảng không đa chiều. Nói cách khác, đó không phải là một mảng lồng nhau [mảng trong mảng]. Nếu bạn đã làm như vậy thì chỉ các khóa cấp cao nhất => giá trị của mảng sẽ được chuyển đổi thành đối tượng

1. Chuyển đổi mảng đa chiều thành đối tượng bằng cách sử dụng mã hóa/giải mã JSON

Sự kết hợp của các chức năng 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

Mã hóa/Giải mã JSON - Mảng thành đối tượng

0

1

 

$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

Một số nhà phát triển cho rằng phương pháp này có liên quan đến hiệu suất. Tuy nhiên, chúng tôi chưa có bất kỳ kết quả điểm chuẩn nào để kiểm tra tương tự. Mặc dù vậy, chúng tôi sử dụng rộng rãi các hàm JSON để chuyển đổi đối tượng

Ngoài ra, hãy kiểm tra cách thay đổi khóa mảng mà không thay đổi thứ tự trong PHP

2. Chuyển đổi Mảng đa chiều thành đối tượng bằng array_map

Mảng thành đối tượng sử dụng array_map[]

0

1

2

3

4

5

 

function map_array_to_object[$arr]{

    return [is_array[$arr] ? [object] array_map[ __FUNCTION__, $arr] : $arr];

}

 

$obj = map_array_to_object[$array];

Cái này là một đối tượng truyền cùng với hằng số ma thuật array_map[] và __FUNCTION__ của PHP. Ngoài ra, hãy biết rằng câu lệnh trả về phải chứa điều kiện bậc ba nếu không quá trình chuyển đổi sẽ không thành công. Ngoài ra, hãy sử dụng __METHOD__ thay vì __FUNCTION__ nếu bạn đang sử dụng hàm bên trong một lớp

Nếu bạn có một mảng lớn đối tượng thì bài viết này có thể giúp bạn tìm đối tượng theo giá trị. Bạn cũng có thể trích xuất một mảng từ một tập hợp các khóa phù hợp/bị loại trừ

3. Hàm tùy chỉnh để chuyển đổi Mảng đa chiều thành đối tượng

Đây là một hàm bổ sung để chuyển đổi mảng nhiều chiều thành đối tượng. Hơn nữa, điều này rất hữu ích nếu mảng là kiểu hỗn hợp. Giống như nó có các khóa được lập chỉ mục ở cấp cao nhất hoặc cấp cao hơn. Kiểm tra chức năng và ví dụ sử dụng

Đệ quy Chuyển mảng thành đối tượng

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

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

 

hàm recursive_convert_array_to_obj[$arr] {

    if [is_array[$arr]]{

        $new_arr = array[];

        foreach[$arr as $k => $v] {

            if [is_integer[$k]] {

                // Cần điều này nếu bạn đã lập chỉ mục các khóa ở cấp cao nhất trong mảng

                // và muốn sử dụng các chỉ mục. ví dụ. $o->chỉ mục{1}

                        $new_arr['index'][$k] = recursive_convert_array_to_obj[$v];

            }

            else {

                        $new_arr[$k] = recursive_convert_array_to_obj[$v];

            }

        }

 

        return [đối tượng] $new_arr;

    }

 

    // nếu không thì duy trì loại $arr

    return $arr;

}

 

$mảng = mảng[

    'độ mờ' = > '0. 5',

    'trắng',

    'đen',

    'colors' = > mảng ['White','Black','Red', 'Green', 'Blue'],

    'red' = > mảng['r' => 'ff', 'g' => '00', 'b' => '00'],

    'green' = > mảng['r' => '00', 'g' => 'ff', 'b' => '00'],

    'blue' = > mảng['r' => '00', 'g' => '00', 'b' => 'ff'],

];

 

$obj = recursive_convert_array_to_obj[$arr];

 

print_r[$obj];

 

/*

đối tượng stdClass

[

[độ mờ] => 0. 5

[chỉ mục] => Mảng

[

[0] => trắng

[1] => đen

]

 

[màu sắc] => Đối tượng stdClass

[

[chỉ mục] => Mảng

[

[0] => Trắng

[1] => Đen

[2] => Đỏ

[3] => Xanh lục

[4] => Màu xanh lam

]

 

]

 

[đỏ] => Đối tượng stdClass

[

[r] => ff

[g] => 00

[b] => 00

]

 

[màu xanh] => Đối tượng stdClass

[

[r] => 00

[g] => ff

[b] => 00

]

 

[màu xanh] => Đối tượng stdClass

[

[r] => 00

[g] => 00

[b] => ff

]

 

]

*/

 

echo $obj - >red->g;            // 00

echo $obj - >opacity;           // 0.5

echo $obj - >index{1};          // black

echo $obj - >colors->index{0};  // White

Ở đây chúng tôi đang di chuyển tất cả các khóa được lập chỉ mục dưới một thuộc tính có tên là 'chỉ mục' và sau đó chuyển đổi mảng thành đối tượng. Chúng tôi làm như vậy vì cả ký hiệu $obj->1 lẫn $obj[0] đều không hoạt động tốt cũng như gây ra lỗi PHP. Nhưng ký hiệu đối tượng $obj->index{0} trả về giá trị dự kiến

Cuối cùng, đó là ba cách khác nhau để chuyển đổi một mảng nhiều chiều thành đối tượng. Cái đầu tiên thực sự phù hợp với một mảng kết hợp đơn giản. Hai cách tiếp theo là những cách hoàn hảo để chuyển đổi mảng nhiều chiều thành đối tượng. Tuy nhiên, cái cuối cùng cho phép bạn vận hành một mảng được nhập hỗn hợp dưới dạng một đối tượng linh hoạt hơn

Ngoài ra, có thể có các phương pháp khác hoặc biến thể của phương pháp cuối cùng cho cùng một. Chúng tôi muốn biết về họ. Bạn có bất kỳ hoặc có bất kỳ mối quan tâm nào về mảng và đối tượng PHP không?

Làm cách nào để chuyển mảng đa chiều PHP sang JavaScript?

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

Làm cách nào để chuyển đổi một mảng PHP thành mảng JavaScript?

Chuyển mảng PHP sang JavaScript rất dễ dàng bằng cách sử dụng Ký hiệu đối tượng JavaScript[JSON]. Phương pháp 1. Sử dụng hàm json_encode[] . Hàm json_encode[] được sử dụng để trả về biểu diễn JSON của một giá trị hoặc mảng. Hàm có thể lấy cả mảng một chiều và nhiều chiều.

Làm cách nào để chuyển đổi mảng 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 để tạo mảng đa chiều trong JavaScript?

JavaScript không cung cấp mảng đa chiều nguyên bản. Tuy nhiên, bạn có thể tạo một mảng nhiều chiều bằng cách xác định một mảng các phần tử, trong đó mỗi phần tử cũng là một mảng khác . Vì lý do này, chúng ta có thể nói rằng một mảng đa chiều trong JavaScript là một mảng của các mảng.

Chủ Đề