Hướng dẫn how to get array from array of objects in php? - cách lấy mảng từ mảng đối tượng trong php?

Giải pháp phụ thuộc vào phiên bản PHP bạn đang sử dụng. Ít nhất có 2 giải pháp:

Đầu tiên (phiên bản PHP mới hơn)

Như @josepalsina đã nói trước giải pháp tốt nhất và cũng ngắn nhất là sử dụng array_column như sau:

$catIds = array_column($objects, 'id');

Lưu ý: Để lặp lại một

$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
0 chứa
$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
1es như được sử dụng trong câu hỏi, chỉ có thể với các phiên bản PHP
$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
2. Nhưng khi sử dụng
$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
0 chứa
$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
0, bạn có thể làm như vậy kể từ PHP
$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
5.

Thứ hai (phiên bản PHP cũ hơn)

@Greg cho biết trong các phiên bản PHP cũ hơn có thể làm sau:

$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);

Nhưng hãy cẩn thận: Trong các phiên bản PHP mới hơn

$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
6, tốt hơn là sử dụng
$catIds = array_map(create_function('$o', 'return $o->id;'), $objects);
7, như sau:

$catIds = array_map(function($o) { return $o->id; }, $objects);

Sự khác biệt

Giải pháp đầu tiên tạo ra một chức năng mới và đặt nó vào RAM của bạn. Trình thu gom rác không xóa phiên bản đã được tạo và đã được gọi ra khỏi bộ nhớ vì một số lý do. Và rằng bất kể thực tế là, rằng thể hiện chức năng được tạo ra không bao giờ có thể được gọi lại, bởi vì chúng tôi không có con trỏ cho nó. Và lần tiếp theo khi mã này được gọi, cùng một hàm sẽ được tạo lại. Hành vi này từ từ lấp đầy bộ nhớ của bạn ...

Cả hai ví dụ với đầu ra bộ nhớ để so sánh chúng:

XẤU

while (true)
{
    $objects = array_map(create_function('$o', 'return $o->id;'), $objects);

    echo memory_get_usage() . "\n";

    sleep(1);
}

// the output
4235616
4236600
4237560
4238520
...

TỐT

while (true)
{
    $objects = array_map(function($o) { return $o->id; }, $objects);

    echo memory_get_usage() . "\n";

    sleep(1);
}

// the output
4235136
4235168
4235168
4235168
...

Điều này cũng có thể được thảo luận ở đây

Bộ nhớ bị rò rỉ?! Trình thu gom rác có làm đúng khi sử dụng 'created_function' trong 'mảng_map' không?

Lập trình bên PhpserverServer Side ProgrammingProgramming




Hướng dẫn how to get array from array of objects in php? - cách lấy mảng từ mảng đối tượng trong php?

PHP đào tạo trực tuyến

45 bài giảng 9 giờ 9 hours

Malhar Lathkar

Chi tiết hơn

Hướng dẫn how to get array from array of objects in php? - cách lấy mảng từ mảng đối tượng trong php?

PHP trong tiếng Telugu

43 bài giảng 5,5 giờ 5.5 hours

Vijay Kumar Parvatha Reddy

Chi tiết hơn

Hướng dẫn how to get array from array of objects in php? - cách lấy mảng từ mảng đối tượng trong php?

PHP trong tiếng Telugu

43 bài giảng 5,5 giờ 40 mins

Vijay Kumar Parvatha Reddy

Chi tiết hơn

PHP trong tiếng Telugu

43 bài giảng 5,5 giờ

$my_object = Array
( [0] => stdClass Object
   (
      [id] => 12
   ),
   [1] => stdClass Object
   (
      [id] => 33
   ),
   [2] => stdClass Object
   (
      [id] => 59
   )
)

Vijay Kumar Parvatha Reddy

$object_id = array_map(create_function('$o', 'return $o->id;'), $objects);

Redis và PHP

$object_id = array_column($my_object, 'id');

22 bài giảng 40 phút

SkillBakeryStudios

[12, 33, 59]

Hướng dẫn how to get array from array of objects in php? - cách lấy mảng từ mảng đối tượng trong php?

Với mã dưới đây, tác vụ là trích xuất ID của biến My_Object -

Thí dụ

  • Hàm Array_MAP có thể được sử dụng cho các phiên bản cũ của PHP. Dưới đây là một minh chứng của cùng.
  • Đối với Php phiên bản 5.5 trở lên, hàm Array_Column có thể được sử dụng. Dưới đây là một minh chứng của cùng một -
  • Đầu ra
  • Điều này sẽ tạo ra đầu ra sau -
  • Amitdiwan
  • Cập nhật vào ngày 06 tháng 4 năm 2020 07:34:36
  • Câu hỏi và câu trả lời liên quan
  • Trích xuất các mảng tách biệt với mảng các đối tượng trong JavaScript
  • Sắp xếp một mảng các đối tượng theo giá trị thuộc tính - JavaScript
  • Truy xuất giá trị thuộc tính có chọn lọc từ mảng các đối tượng trong JavaScript
  • Tìm kiếm từ một mảng các đối tượng thông qua mảng chuỗi để lấy mảng các đối tượng trong JavaScript
  • Trích xuất các giá trị duy nhất từ ​​một mảng - JavaScript
  • Kéo nhiều đối tượng từ một mảng trong MongoDB?
  • Bộ lọc mảng các đối tượng bởi một thuộc tính cụ thể trong JavaScript?
  • Xóa các bản sao khỏi một mảng các đối tượng JavaScript
  • Tạo một mảng các đối tượng dựa trên một mảng đối tượng khác JavaScript

Sắp xếp một mảng các đối tượng theo một mảng javascript

JavaScript đếm số lượng các phần tử duy nhất trong một mảng các đối tượng bởi một thuộc tính đối tượng?

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

Đối tượng cho 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ị đã 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.JSON decode and encode method. In this method, 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.

Array_Keys () được sử dụng trong PHP là gì?

Array_Keys () là một hàm tích hợp trong PHP và được sử dụng để trả về tất cả các khóa và mảng hoặc tập hợp con của các khóa.Tham số: Hàm lấy ba tham số trong đó một tham số là bắt buộc và hai tham số khác là tùy chọn.to return either all the keys of and array or the subset of the keys. Parameters: The function takes three parameters out of which one is mandatory and other two are optional.

Cách nào chính xác để truy cập các phần tử mảng trong PHP?

Truy cập các phần tử trong mảng PHP Các phần tử trong mảng loại khóa số PHP được truy cập bằng cách tham chiếu biến chứa mảng, theo sau là chỉ mục vào mảng của phần tử cần thiết được đặt trong khung vuông ([]).referencing the variable containing the array, followed by the index into array of the required element enclosed in square brackets ([]).

Sự khác biệt giữa mảng và đối tượng trong PHP là gì?

Một đối tượng là một thể hiện của một lớp.Nó chỉ đơn giản là một mẫu vật của một lớp và có bộ nhớ được phân bổ.Mảng là cấu trúc dữ liệu lưu trữ một hoặc nhiều loại giá trị tương tự trong một tên duy nhất nhưng mảng kết hợp khác với một mảng PHP đơn giản.Một mảng chứa chỉ mục chuỗi được gọi là mảng kết hợp.