Làm cách nào để tạo đối tượng mảng trong PHP?

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

Mảng

Giả sử, bạn được cung cấp một mảng thuộc tính nào đó chứa một mảng khác. Nghe có vẻ phức tạp?

 [
      'foo',
  'bar'
 ]
];

Đầu ra

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

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

Chuyển đổi thành một đối tượng

Vì vậy, hãy 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_mã hóa. Để chuyển đổi một mảng thành chuỗi json

- json_decode. Để chuyển đổi một chuỗi json thành một đối tượng

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ẽ giúp bạn có được thứ gì đó như

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

Chuỗi thông tin này có thể hữu ích cho những thứ 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ẽ giúp bạn

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à một boolean có thể đúng hoặc sai. Nếu bạn đặt tham số thứ hai thành "true", bạn vẫn sẽ nhận được một mảng

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

Cuối cùng, chúng ta đã chuyển đổi thành công mảng của mình thành một đối tượng, chúng ta 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 bên dưới nếu bạn có bất kỳ câu hỏi nào liên quan đến điều này

Cách tốt hơn xung quanh

Sử dụng mã hóa và giải mã JSON để chuyển đổi mảng thành đối tượng có thể tiêu tốn 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 để chuyển một mảng thành một đối tượng là sử dụng kiểu truyền đối tượng. Ví dụ

Nếu bạn có một danh sách các mục (ví dụ: danh sách tên ô tô), việc lưu trữ ô tô trong các biến đơn lẻ có thể trông như thế này

$cars1 = "Volvo";
$cars2 = "BMW";
$cars3 = "Toyota";

Tuy nhiên, nếu bạn muốn đi vòng qua các ô tô và tìm một ô tô cụ thể thì sao?

Giải pháp là tạo một mảng

Một mảng có thể chứa nhiều giá trị dưới một tên duy nhất và bạn có thể truy cập các giá trị bằng cách tham chiếu đến một số chỉ mục

Và tôi nhận được tất cả dữ liệu nhiều lần thay vì chỉ nhận được hai bệnh nhân với hồ sơ của họ nhưng hồ sơ của bệnh nhân một lại lặp lại với bệnh nhân hai


Bạn có thể thấy chi tiết bị ghi đè vì bạn đang khai báo biến $obj của mình bên ngoài vòng lặp while. Vì vậy, điều xảy ra là $obj không được tạo trên mỗi hàng, nó chỉ tồn tại dưới dạng một đối tượng

Hãy thử di chuyển $obj = new stdClass; lên trên $obj->MembershipNo như vậy

$obj = new stdClass;
$obj->MembershipNo = $row['MembershipNo'];

Thêm giải pháp của bạn ở đây

 B   I   U   S  small BIG code var  <   >   &  link [^] encode untab case indent outdent

Xem trước 0

thành viên hiện có

hoặc tham gia với chúng tôi

Tải xuống, Bình chọn, Nhận xét, Xuất bản

Email của bạn

Email này đang được sử dụng. Bạn có cần mật khẩu của bạn?

Mật khẩu tùy chọn

Khi trả lời một câu hỏi xin vui lòng

  1. Đọc kỹ câu hỏi
  2. Hiểu rằng tiếng Anh không phải là ngôn ngữ đầu tiên của mọi người, vì vậy hãy khoan dung với lỗi chính tả và ngữ pháp
  3. Nếu một câu hỏi được diễn đạt kém thì hãy yêu cầu làm rõ, bỏ qua nó hoặc chỉnh sửa câu hỏi và khắc phục sự cố. Xúc phạm không được chào đón
  4. Đừng bảo ai đó đọc hướng dẫn. Rất có thể họ có và không nhận được. Đưa ra câu trả lời hoặc chuyển sang câu hỏi tiếp theo
Hãy làm việc để giúp các nhà phát triển, không làm họ cảm thấy ngu ngốc


Nội dung này, cùng với bất kỳ tệp và mã nguồn liên quan nào, được cấp phép theo Giấy phép Mở Dự án Code (CPOL)

// Using short array syntax.
// Also, works with array() syntax.
$arr1 = [1, 2, 3];
$arr2 = [...$arr1]; //[1, 2, 3]
$arr3 = [0, ...$arr1]; //[0, 1, 2, 3]
$arr4 = [...$arr1, ...$arr2, 111]; //[1, 2, 3, 1, 2, 3, 111]
$arr5 = [...$arr1, ...$arr1]; //[1, 2, 3, 1, 2, 3]

function getArr() {
return ['a', 'b'];
}
$arr6 = [...getArr(), 'c' => 'd']; //['a', 'b', 'c' => 'd']
?>

Làm cách nào để lưu trữ một đối tượng trong một mảng trong PHP?

Chuyển đổi một đối tượng thành một mảng bằng kỹ thuật đánh máy. túi lớp php { chức năng công khai __construct( $item1, $item2, $item3){ $this->item1 = $item1; . "

Bạn có thể có một mảng các đối tượng trong PHP không?

Có, có thể có mảng đối tượng trong PHP . Chúng ta có phải tiếp tục tăng chỉ số hàm tạo trong myObject() mỗi khi chúng ta muốn thêm một đối tượng mới vào mảng hay nó là tùy chọn? .

Làm cách nào để tạo một đối tượng trong PHP?

Sử dụng stdClass() mới để tạo đối tượng không có lớp . Để tạo một đối tượng không có lớp, chúng ta sẽ sử dụng toán tử stdClass() mới và sau đó thêm một số thuộc tính cho chúng. cú pháp. // Tạo đối tượng $object = new stdClass();

Làm cách nào để in đối tượng mảng trong PHP?

In một mảng trong PHP. Để in hoặc lặp lại một mảng trong PHP, bạn có thể sử dụng hàm print_r($variable, $return) hoặc var_dump($variable1, $variable2,. ) chức năng . Hàm print_r() in thông tin về biến đã truyền ở dạng con người có thể đọc được.