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

Chuyển đổi đối tượng PHP sang mảng giúp dễ dàng truy cập dữ liệu từ gói đối tượng. Hầu hết các đối tượng đầu ra API dưới dạng phản hồi

Một số API có thể trả về cấu trúc đối tượng phức tạp. Ví dụ: hỗn hợp các đối tượng và mảng đi kèm với phản hồi. Khi đó, quá trình chuyển đối tượng sang mảng sẽ đơn giản hóa quá trình phân tích dữ liệu

Ví dụ nhanh này thực hiện một đối tượng PHP để chuyển đổi mảng trong một bước duy nhất. Nó tạo ra một gói đối tượng và thiết lập các thuộc tính

Nó sử dụng hàm JSON encode() decode() để chuyển đổi. Hàm json_decode() cung cấp giá trị boolean true để lấy đầu ra của mảng

ví dụ nhanh

Chuyển đổi đối tượng PHP thành mảng trong một dòng bằng cách sử dụng json_decode

id = 5678;
$object->name = "William";
$object->department = "CSE";
$object->designation = "Engineer";

$result = json_encode($object);
// converts object $result to array
$output = json_decode($result, true);

print "
";
print_r($result);
?>

đầu ra

Sau khi giải mã, mảng đầu ra được in ra trình duyệt. Ảnh chụp màn hình bên dưới hiển thị đầu ra của chương trình này

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

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

Khi chuyển đổi một đối tượng thành mảng, tên thuộc tính đối tượng. value' sẽ tạo thành một mảng kết hợp

Nếu một đối tượng chứa các thuộc tính chưa được gán thì nó sẽ trả về một mảng có các phím số

Có hai cách để đạt được một đối tượng PHP để chuyển đổi mảng

  1. Đánh máy đối tượng vào một mảng
  2. Mã hóa và giải mã các thuộc tính đối tượng thành một mảng các phần tử

Typecasting là một phương pháp đơn giản để chuyển đổi loại dữ liệu đầu vào. Phương thức thứ hai áp dụng json_decode() trên đối tượng đã cho. Nó cung cấp boolean true như một tham số thứ hai để lấy đầu ra ở định dạng mảng

Bài viết này bao gồm các ví dụ về việc sử dụng cả hai phương pháp trên để thực hiện chuyển đổi đối tượng thành mảng

Đối tượng PHP thành mảng bằng cách sử dụng kiểu chữ

Đây là một phương pháp thay thế để chuyển đổi một loại đối tượng thành một mảng. Chương trình dưới đây sử dụng cùng một đối tượng đầu vào

Nó thay thế giải mã mã hóa JSON thông qua chuyển đổi bằng câu lệnh typecasting. Đầu ra sẽ giống như chúng ta đã thấy ở trên

Cú pháp đánh máy PHP được hiển thị bên dưới. Nó thêm vào trước kiểu dữ liệu đích kèm theo dấu ngoặc đơn

$output = (target-data-type) $input

type-casting-to-convert-object-to-array. php

id = 5678;
$object->name = "William";
$object->department = "CSE";
$object->destination = "Engineer";

print"
";
print_r( (array) $object );
?>

Đối tượng đệ quy để chuyển đổi mảng

Ví dụ này sử dụng một đối tượng đầu vào có độ sâu = 3. Nó thêm nhiều thuộc tính ở cấp độ lồng nhau ở các độ sâu khác nhau. Gói đối tượng phân cấp được đặt làm đầu vào cho quá trình chuyển đổi

Chương trình này định nghĩa một hàm tùy chỉnh để chuyển đổi một đối tượng PHP thành mảng. Nó thực hiện chuyển đổi đệ quy trên từng cấp độ của đối tượng đầu vào

chuyển đổi-đệ quy-đối tượng thành mảng. php

id = 5678;
$object->name = "William";

$object->address = new stdClass();
$object->address->email = "[email protected]";

$object->address->billing = new stdClass();
$object->address->billing->zipcode = 9950;

$object->address->shipping = new stdClass();
$object->address->shipping->zipcode = 1234;

$object->address->state = "South Carolina";
$object->address->city = "Columbia";
$object->address->country = "US";

function objectToArray($object)
{
    foreach ($object as $k => $obj) {
        if (is_object($obj)) {
            $object->$k = objectToArray($obj);
        } else {
            $object->$k = $obj;
        }
    }
    return (array) $object;
}

$result = objectToArray($object);

print "
";
print_r($result);
?>

Đây là đầu ra của đối tượng PHP đệ quy cho chương trình chuyển đổi mảng ở trên

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

Chuyển đổi đối tượng lớp PHP thành mảng

Ví dụ này xây dựng một gói đối tượng lớp PHP. Hàm tạo của lớp thiết lập các thuộc tính của đối tượng trong quá trình khởi tạo

Sau đó, thể hiện của lớp Sinh viên được mã hóa để chuẩn bị dữ liệu kiểu đối tượng. Hàm json_encode() chuẩn bị đối tượng JSON để cung cấp cho nó giải mã. Hàm json_decode() chuyển đổi đối tượng PHP thành mảng

chuyển đổi lớp-đối tượng thành mảng. php

id = $id;
        $this->name = $name;
        $this->state = $state;
        $this->city = $city;
        $this->country = $country;
    }
}

$student = new student("5678", "William", "South Carolina", "Columbia", "US");
$result = json_encode($student);
$output = json_decode($result, true);
print "
";
print_r($output);
?>

Kiểm tra is_object() trước khi chuyển đổi

Thực hành lập trình tốt là kiểm tra tính khả dụng của dữ liệu trước khi xử lý. Ví dụ này áp dụng xác minh is_object trước khi chuyển đổi một đối tượng PHP thành một mảng

Phương thức này xác minh nếu đầu vào là một đối tượng. PHP bao gồm các chức năng độc quyền để xác minh tính khả dụng của dữ liệu và loại dữ liệu. Ví dụ isset(), empty(), is_array() v.v.

kiểm tra-đối-tượng-trước-chuyển-đổi. php

id = $id;
        $this->name = $name;
        $this->state = $state;
        $this->city = $city;
        $this->country = $country;
    }
}
$student= new student("5678", "William", "South Carolina", "Columbia", "US");

print "
";
if (is_object($student)) {
    echo "Input Object:" . '
'; $result = json_encode($student); print_r($result); $studentArray = json_decode($result, true); } if(!empty($studentArray) && is_array($studentArray)) { echo "

Output Array:" . '
'; print_r($studentArray); } ?>

Chuyển đổi đối tượng Riêng tư, Được bảo vệ của một lớp

Chương trình dưới đây định nghĩa một lớp có thuộc tính private và protected. Mã PHP khởi tạo lớp và tạo một gói đối tượng

Nó sử dụng cả phương pháp đánh máy và giải mã để chuyển đổi đối tượng thành một mảng

Khi sử dụng kiểu chữ, chỉ mục mảng đầu ra của thuộc tính riêng chứa tiền tố tên lớp. Sau khi chuyển đổi, chỉ mục mảng có tiền tố * cho các thuộc tính được bảo vệ

chuyển đổi-riêng tư-bảo vệ-đối tượng. php

name ="William";
        $this->id = 5678;
        $this->email = "[email protected]";
    }
}

print "
";
$student = new Student;
$result = json_encode($student);
$output1 = json_decode($result, true);
print "
Using JSON decode:
"; print_r($output1); $output2 = new Student; print "

Using Type casting:
"; print_r( (array) $output2 ); ?>

Ảnh chụp màn hình đầu ra này cho thấy sự khác biệt trong chỉ mục mảng. Chúng được tạo từ các thuộc tính riêng tư và được bảo vệ của thể hiện lớp

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

Truy cập thuộc tính đối tượng bằng phím số

Mã này bao gồm một mảng kết hợp các thông tin chi tiết về sinh viên. Nó cũng chứa các giá trị với các phím số

Khi chuyển đổi mảng này thành một đối tượng, các khóa mảng kết hợp được sử dụng để truy cập các giá trị thuộc tính của đối tượng. Có những trường hợp ngoại lệ để truy cập thuộc tính nếu nó không có tên

Đoạn mã dưới đây cho thấy cách truy cập các đối tượng bằng các phím số. Khóa được đặt trong dấu ngoặc nhọn để lấy giá trị

vấn-đề-với-phím-số. php

 'William',
    'email' => '[email protected]',
    'phone' => '12345678',
    'REG5678'
);

$student = (object) array(
    'name' => 'William',
    'email' => '[email protected]',
    'phone' => '12345678',
    'REG5678'
);
echo '
' . print_r($student, true) . '
'; . $sinh viên->tên; . $sinh viên->email; . $student->phone; . $sinh viên->{0};
'. $sinh viên->tên; . $sinh viên->email; . $student->phone; . $sinh viên->{0};
' . $student->email; echo '
' . $student->phone; echo '
' . $student->{0}; ?>

Phần kết luận

Chúng ta đã thấy các cách khác nhau để chuyển đổi một đối tượng PHP thành một mảng. Cơ bản PHP typecasting đã đạt được một chuyển đổi đối tượng ngoại trừ một vài trường hợp đặc biệt

Quá trình giải mã mã hóa PHP JSON đã thực hiện chuyển đổi bằng mã một dòng. Nó chấp nhận các đối tượng lớp và chuyển đổi các thuộc tính của chúng thành một danh sách mảng

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

Đối tượng thành mảng PHP cũng được thực hiện với phương thức giải mã và mã hóa JSON . 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ị nhất định. 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.

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

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. cú pháp. $myArray = json_decode(json_encode($object), true);

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

Nếu một đối tượng được chuyển đổi thành một mảng, thì kết quả là một mảng có các phần tử là thuộc tính của đối tượng .

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

Trong PHP, hàm implode() là một hàm tích hợp, nhận một mảng và chuyển đổi nó thành một chuỗi. implode() không sửa đổi mảng ban đầu. Không quan trọng mảng là mảng được lập chỉ mục hay mảng kết hợp. Khi bạn chuyển mảng sang implode() , nó sẽ nối tất cả các giá trị thành một chuỗi.