Khi bạn có một mảng PHP duy nhất, bạn có thể chuyển đổi nó thành một mảng JavaScript bằng cách gọi hàm PHP json_encode()
Bạn cần lưu trữ kết quả của json_encode() trong một biến JavaScript như sau
<?php // 👇 create a PHP array $users = ["Nathan", "Jack", "Jane"]; ?> <body> <!-- 👇 Add a script tag for JavaScript --> <script> const users = <?php echo json_encode($users); ?>; console.log(Array.isArray(users)); console.log(users); </script> </body>
Kết quả nhật ký giao diện điều khiển sẽ như sau
true (3) ['Nathan', 'Jack', 'Jane']
Đó là cách bạn chuyển đổi một mảng PHP thành một mảng JavaScript
Chuyển đổi mảng đa chiều PHP thành mảng JavaScript
Vì JavaScript cũng có khái niệm mảng đa chiều, nên bạn cũng có thể chuyển đổi mảng đa chiều PHP sang JavaScript bằng cách sử dụng json_encode()
Xem xét ví dụ sau
<?php // 👇 a PHP multi-dimensional array $users = [ ["apple", "orange"], ["cucumber", "lettuce"], ["rose", "jasmine"] ]; ?> <body> <!-- 👇 Add a script tag for JavaScript --> <script> const users = <?php echo json_encode($users); ?>; console.log(Array.isArray(users)); console.log(users); </script> </body>
Đầu ra nhật ký giao diện điều khiển như hình bên dưới
true (3) [Array(2), Array(2), Array(2)] (2) ['apple', 'orange'] (2) ['cucumber', 'lettuce'] (2) ['rose', 'jasmine']
Chuyển đổi mảng kết hợp PHP thành mảng JavaScript
Khi bạn có một mảng PHP kết hợp, việc gọi json_encode() sẽ biến mảng đó thành một đối tượng JavaScript
Vì một đối tượng JavaScript tương tự như một mảng kết hợp, nên bạn cũng có thể truy cập giá trị bằng cách sử dụng khóa
Hãy xem xét ví dụ dưới đây
<?php // 👇 create a PHP associative array $my_array = [ "name" => "nathan", "age" => 28, ]; ?> <body> <!-- 👇 Add a script tag for JavaScript --> <script> const arr = <?php echo json_encode($my_array); ?>; // 👇 the result will not be an array according to JavaScript console.log(Array.isArray(arr)); // 👇 access the object properties like associative array console.log(arr["name"]); console.log(arr["age"]); </script> </body>
Nhật ký giao diện điều khiển ở trên sẽ tạo ra đầu ra sau
false nathan 28
Như bạn có thể thấy, hàm true (3) ['Nathan', 'Jack', 'Jane'] 4 trả về true (3) ['Nathan', 'Jack', 'Jane'] 5 vì biến true (3) ['Nathan', 'Jack', 'Jane'] 6 được xác định là một đối tượng, không phải một mảng
Trong JavaScript, một mảng kết hợp được xác định là một đối tượng nhưng không phải là một mảng
Mặc dù nó không được xác định là một mảng, nhưng bạn có thể sử dụng cú pháp tương tự để truy cập giá trị của mảng kết hợp như trong ví dụ trên
Chuyển đổi mảng được lập chỉ mục PHP thành mảng JavaScript
PHP và JavaScript có cùng hệ thống lập chỉ mục mặc định cho mảng, vì vậy bạn có thể chuyển đổi một mảng được lập chỉ mục như một mảng thông thường
<?php // 👇 create a PHP array $users = [ 0 => "Nathan", 1 => "Jack", 2 => "Jane" ]; ?> <body> <script> const users = <?php echo json_encode($users); ?>; console.log(Array.isArray(users)); console.log(users); </script> </body>
Khi bạn có một mảng với các số chỉ mục tùy chỉnh, thì JavaScript sẽ hiểu mảng đó là một đối tượng
Nhưng không sao vì bạn vẫn có thể truy cập giá trị mảng bằng cách sử dụng chỉ mục như bên dưới
<?php // 👇 custom index for the array $users = [ 11 => "Nathan", 22 => "Jack", 33 => "Jane" ]; ?> <body> <script> const users = <?php echo json_encode($users); ?>; console.log(Array.isArray(users)); console.log(users); console.log(users[33]); </script> </body>
Đoạn mã trên sẽ tạo ra các bản ghi sau
false {11: 'Nathan', 22: 'Jack', 33: 'Jane'} Jane
Mặc dù mảng được lập chỉ mục được chuyển đổi thành một đối tượng, bạn vẫn có thể truy cập các giá trị giống như một mảng