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
PHP đào tạo trực tuyến
45 bài giảng 9 giờ 9 hours
Malhar Lathkar
Chi tiết hơn
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
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]
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?