Hướng dẫn convert array of array to array of object php - chuyển mảng mảng thành mảng đối tượng php

Bạn có một mảng được lập chỉ mục của các mảng kết hợp. Nếu bạn chuyển đổi nó thành JSON thì hãy quay lại trạng thái ITBER với hành vi mặc định là

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)
1, cấp cao nhất (mảng được lập chỉ mục) sẽ được chọn dưới dạng loại mảng trong khi Subarrays sẽ trở thành loại đối tượng.

Lưu ý rằng điều này sẽ chuyển đổi sẽ thấm qua tất cả các mức dữ liệu tiếp theo (trong trường hợp các nhà nghiên cứu có thể có cấu trúc dữ liệu sâu hơn). Thực tế, các mảng được lập chỉ mục vẫn là các mảng được lập chỉ mục và các mảng kết hợp trở thành đối tượng.

Đây là một cuộc gọi cơ bản đến mức tôi không chắc chắn rằng việc tạo một trình bao bọc cho nó là cần thiết.

Mã: (Demo)

$assoc = array (
    array(
        'prop1'=>'val1',
        'prop2'=>'val2',
    ),
    array(
        'prop1'=>'val1',
        'prop2'=>'val2',
    ),
);

var_export(
    json_decode(json_encode($assoc))
);

Output:

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)

Đôi khi trong PHP, bạn có thể thấy mình cần phải che giấu một mảng vào một đối tượng. Trong bản hack nhỏ này, chúng ta sẽ thấy điều này có thể dễ dàng đạt được như thế nào.

Thời gian đọc: 2 phút 2 minutes

Giới thiệu

Đôi khi trong PHP, bạn có thể thấy mình cần phải che giấu một mảng vào một đối tượng. Trong bản hack nhỏ này, chúng tôi sẽ thấy điều này dễ dàng đạt được như thế nào.

Mảng

Chúng ta hãy giả sử, bạn đã đưa ra một mảng một số thuộc tính có chứa một mảng khác. Nghe có vẻ phức tạp? Ở đây bạn chỉ cần có một mảng bên trong một mảng.

 [
      'foo',
  'bar'
 ]
];

Đầu ra

Trên print_r mảng, bạn có thể nhận được kết quả như

array:1 [▼
  "items" => array:2 [▼
    0 => "foo"
    1 => "bar"
  ]
]

Vì vậy, hãy để Lừa chuyển đổi mảng này thành một đối tượng. Ở đây, chúng tôi sẽ sử dụng json_encode & json_decode. JSON là ký hiệu đối tượng JavaScript & PHP cung cấp cho chúng tôi khả năng mã hóa và giải mã JSON.

- JSON_ENCODE: Để chuyển đổi một mảng thành chuỗi JSON.: For converting an array to a json string.

- JSON_DECODE: Để chuyển đổi chuỗi JSON thành một đối tượng.: For converting a json string into an object.

Bước 1 - Mã hóa nó thành một chuỗi

$object = json_encode($array);

VAR_DUMP Đối tượng này sẽ có được một cái gì đó như: this object will get you something like:

"{"items":["foo","bar"]}"

Chuỗi thông tin này có thể hữu ích cho một cái gì đó như lưu trữ vào cơ sở dữ liệu.

Bước 2 - Giải mã nó thành một đối tượng

Bây giờ khi chúng ta có một chuỗi JSON, chúng ta có thể sử dụng json_decode để chuyển đổi và định dạng chuỗi này thành một đối tượng. Hãy để thử điều đó.

$object = json_decode(json_encode($array));

var_dump đối tượng này bây giờ sẽ có được bạn this object now will get you

stdClass Object ( [items] => Array ( [0] => foo [1] => bar ) )

Một điều cần lưu ý về json_decode là, nó chuyển đổi một chuỗi JSON thành một đối tượng trừ khi bạn cung cấp tùy chọn thứ hai là boolean có thể đúng hoặc sai. Nếu bạn đặt tham số thứ hai thành True True, bạn sẽ vẫn nhận được một mảng.

Trường hợp sử dụng

Cuối cùng, chúng tôi đã chuyển đổi thành công mảng của mình thành một đối tượng, chúng tôi có thể sử dụng nó như

foreach ($object->items as $item) {
   echo $item;
}

Hãy tự mình thử thủ thuật nhỏ này và để lại cho chúng tôi một bình luận dưới đây nếu bạn có bất kỳ truy vấn nào về điều này.

Cách tốt hơn xung quanh

Sử dụng mã hóa JSON và giải mã để chuyển đổi mảng thành các đối tượng có thể tiêu thụ rất nhiều tài nguyên nếu mảng lớn hơn. Theo cách này, cách tốt hơn để đúc một mảng vào một đối tượng là sử dụng typecast đối tượng. Ví dụ

$object = (object)$array;

Điều này cũng sẽ trở lại

stdClass Object ( [items] => Array ( [0] => foo [1] => bar ) )

Nó tùy thuộc vào bạn, bất kỳ phương pháp nào để chọn giữa hai để chuyển đổi một mảng thành một đối tượng trong PHP.

Hướng dẫn convert array of array to array of object php - chuyển mảng mảng thành mảng đối tượng php

Usama Muneer

Một nhà phát triển web đầy đủ chuyên nghiệp, tự động và định hướng chi tiết từ Karachi, Pakistan có kinh nghiệm trong việc phát triển các ứng dụng bằng JavaScript, WordPress & Laravel. Thích viết trên các công nghệ web khác nhau với một kỹ năng hữu ích không kém để có ý nghĩa từ nó.

Hướng dẫn convert array of array to array of object php - chuyển mảng mảng thành mảng đối tượng php

Giới thiệu về đối tượng PHP cho mảng

Bài viết sau đây cung cấp một phác thảo cho đối tượng PHP để mảng. Như chúng ta đã biết, đối tượng được gọi là một thể hiện lớp có bộ nhớ được phân bổ. Trong trường hợp của một mảng, nó là một cấu trúc dữ liệu chứa một hoặc nhiều giá trị của một loại tương tự trong một tên. Mặt khác, một mảng kết hợp không giống như một mảng PHP bình thường. Một mảng kết hợp là một mảng bao gồm một chỉ mục chuỗi lưu trữ các giá trị mục được liên kết với các giá trị khóa khác với thứ tự của chỉ mục tuyến tính.

Các phương thức của một đối tượng PHP để mảng

Bây giờ, chúng ta hãy xem các cách khác nhau để chúng ta có thể chuyển đổi đối tượng PHP thành mảng.

Phương pháp 1 - Với sự trợ giúp của phương thức JSON_DECODE và JSON_ENCODE. 1 – With the help of the json_decode and json_encode method.

Trong phương thức này, hàm json_decode lấy chuỗi được mã hóa JSON và thay đổi nó thành một biến PHP, trong khi hàm json_encode trả về một chuỗi được mã hóa ở định dạng JSON cho một giá trị cụ thể.

Syntax:

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)
2

Phương pháp 2 - Với sự trợ giúp của loại đúc.

Typecasting là một kỹ thuật trong đó một loại dữ liệu biến thành kiểu dữ liệu khác. Nó được coi là một chuyển đổi kiểu dữ liệu rõ ràng. Nó có thể dịch một đối tượng PHP sang một mảng với sự trợ giúp của các quy tắc typecasting trong PHP.

Syntax:

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)
3

Làm thế nào để chuyển đổi đối tượng thành mảng trong PHP?

Như chúng ta đã biết, có một số định dạng dữ liệu như chuỗi, đối tượng, mảng, vv Trong trường hợp PHP, có các định dạng dữ liệu như thế này. Để có được đầu ra cần thiết, kết quả OBJ đối tượng PHP là cần thiết trong định dạng của một mảng kết hợp.

Bây giờ, chúng ta hãy xem cách dịch một đối tượng PHP.

Code:

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)
4

Đây là bộ xương để chuyển đổi một đối tượng thành một mảng.

Bây giờ chúng ta hãy xem làm thế nào để thực hiện điều này.

  • Để mã hóa chuỗi, hãy sử dụng đối tượng của Google = json_encode ($ mảng);

Khi đối tượng là var_dump, tất cả các mục sẽ được hiển thị.

  • Để giải mã thành một đối tượng, chuỗi JSON có sẵn sẽ được sử dụng để chuyển đổi và định dạng chuỗi được thực hiện thành một đối tượng. Nó sẽ được thực hiện bằng $ obj = json_decode (json_encode ($ mảng));
  • Khi đối tượng là var_dump, tất cả các mục sẽ được hiển thị sau khi chuyển đổi thành một mảng.

Ở đây, một điểm quan trọng cần xem xét là JSON_DECODE dịch chuỗi JSON thành một đối tượng, ngoại trừ bạn cung cấp một tùy chọn khác là Boolean có thể đúng hoặc sai. Ngay cả khi tham số thứ hai được coi là đúng, một mảng sẽ được lấy.

Ngoài ra, khi sử dụng hoạt động mã hóa và giải mã JSON được sử dụng, các mảng được chuyển đổi thành các đối tượng chiếm nhiều tài nguyên nếu mảng lớn. Trong trường hợp đó, phương pháp tốt hơn để gõ một mảng vào một đối tượng sử dụng đúc đối tượng.

Hãy xem xét $ obj = (đối tượng) $ mảng; Cú pháp. Ở đây, đối tượng sẽ được chuyển đổi thành mảng.

Dựa trên các yêu cầu, bạn có thể chọn phương thức bạn muốn để chuyển đổi một mảng thành một đối tượng trong PHP.

Ví dụ về một đối tượng PHP để mảng

Các ví dụ khác nhau được đề cập dưới đây:

Ví dụ 1

Chương trình PHP để chuyển đổi một đối tượng thành một mảng bằng phương pháp typecasting.

Code:

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)
5

Output:

Hướng dẫn convert array of array to array of object php - chuyển mảng mảng thành mảng đối tượng php

Trong chương trình này, một bệnh viện lớp được tạo ra, và bên trong đó, ba yếu tố như El1, EL2 và EL3. Sau đó, một hàm __construct () được khai báo, được thực thi trong thời gian đối tượng được tạo. Khi điều này được thực hiện, hàm tạo sẽ lấy các tham số mà sau này được cung cấp trong quá trình tạo đối tượng bằng cách sử dụng từ khóa mới. Từ chương trình, có thể thấy rằng các đối tượng được in trong trường hợp đầu tiên của biểu thức var_dump (). Nhưng trong trường hợp biểu thức thứ hai, một đối tượng được đúc thành một mảng bằng quy trình đánh máy.

Ví dụ #2

Chương trình PHP để chuyển đổi một đối tượng thành một mảng bằng mã hóa JSON và giải mã JSON.

Code:

array (
  0 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
  1 => 
  (object) array(
     'prop1' => 'val1',
     'prop2' => 'val2',
  ),
)
6

Output:

Hướng dẫn convert array of array to array of object php - chuyển mảng mảng thành mảng đối tượng php

Trong chương trình này cũng vậy, một bệnh viện lớp học được tạo ra, và bên trong đó, hai yếu tố như EL1 và EL2, được tạo ra. Sau đó, một hàm __construct () được khai báo, được thực thi trong thời gian đối tượng được tạo. Khi điều này được thực hiện, hàm tạo sẽ lấy các tham số mà sau này được cung cấp trong quá trình tạo đối tượng bằng cách sử dụng từ khóa mới. Từ chương trình, có thể thấy rằng các đối tượng được in trong trường hợp đầu tiên của biểu thức var_dump (). Nhưng trong trường hợp biểu thức thứ hai, một đối tượng được đúc thành một mảng bằng quy trình đánh máy. Ở đây, phương pháp đầu tiên trong các phần phương thức được sử dụng để chuyển đổi một đối tượng thành một mảng.

Sự kết luận

Một mảng kết hợp là một mảng bao gồm một chỉ mục chuỗi lưu trữ các giá trị mục được liên kết với các giá trị khóa khác với thứ tự của chỉ mục tuyến tính. Bài viết này đã thấy cách đối tượng PHP cho mảng đang hoạt động, các phương pháp để đạt được nó và các ví dụ khác nhau.

Bài viết đề xuất

Đây là một hướng dẫn cho đối tượng PHP để mảng. Ở đây chúng tôi thảo luận về phần giới thiệu, phương pháp, làm thế nào để chuyển đổi đối tượng thành mảng trong PHP? và ví dụ tương ứng. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm -

  1. Php Xóa tệp
  2. Php Array_Pop ()
  3. PHP nổ
  4. PHP bao gồm và yêu cầu

Làm thế nào để chuyển đổi 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 để đúc các loại khác để đối tượng. Nếu một đối tượng được chuyển đổi thành đối tượng, nó không được sửa đổi. Nhưng, nếu loại đối tượng được chuyển đổi/đúc một thể hiện của std class được tạo, nếu nó không phải là null.stdClass() is used. The stdClass() is an empty class, which is used to cast other types to object. If an object is converted to object, its not modified. But, if object type is converted/type-casted an instance of stdClass is created, if it is not NULL.

Làm thế nào để bạn biến một mảng thành một đối tượng?

Để chuyển đổi một mảng thành một đối tượng, hãy sử dụng phương thức giảm () để lặp qua mảng, chuyển nó một đối tượng làm giá trị ban đầu.Trên mỗi lần lặp, gán một cặp giá trị khóa mới cho đối tượng tích lũy và trả về kết quả.Đã sao chép!use the reduce() method to iterate over the array, passing it an object as the initial value. On each iteration, assign a new key-value pair to the accumulated object and return the result. Copied!

Bạn sẽ nhận được mảng nào nếu bạn chuyển đổi một đối tượng thành một mảng trong PHP?

Nếu một đối tượng được chuyển đổi thành một mảng, kết quả là một mảng có các phần tử là thuộc tính của đối tượng.an array whose elements are the object's properties.

Làm thế nào để có được mảng từ mảng các đối tượng trong PHP?

Trong phương thức này, hàm json_encode () trả về một chuỗi được mã hóa JSON cho một giá trị đã cho. Hàm json_decode () chấp nhận chuỗi được mã hóa JSON và chuyển đổi nó thành một mảng PHP.Đây là một phương pháp rất phổ biến được sử dụng để chuyển đổi đối tượng thành mảng PHP.the json_encode() function returns a JSON encoded string for a given value. The json_decode() function accepts the JSON encoded string and converts it into a PHP array. This is a very popular method used to convert object to array PHP.