Tôi có 2 mảng.Các phần tử mảng tham chiếu PHP
$result = array();
$row = array();
Phần tử của hàng là tất cả các tham chiếu và liên tục thay đổi. Đối với mỗi lần lặp của $row
Tôi muốn sao chép các giá trị của hàng vào mục nhập $result
và không phải là tham chiếu.
Tôi đã tìm thấy một vài giải pháp nhưng tất cả đều có vẻ khá khủng khiếp.
$result[] = unserialize(serialize($row));
$result[] = array_flip(array_flip($row));
Cả hai công việc trên nhưng có vẻ như rất nhiều mã không cần thiết và xấu xí chỉ để sao chép nội dung của một mảng của tài liệu tham khảo theo giá trị, thay vì sao chép các tài liệu tham khảo chính mình.
Có cách nào sạch hơn để thực hiện việc này không? Nếu không phải là cách hiệu quả nhất sẽ là gì?
Cảm ơn.
EDIT: Như đã đề cập bên dưới một cái gì đó như:
function dereference($ref) {
$dref = array();
foreach ($ref as $key => $value) {
$dref[$key] = $value;
}
return $dref;
}
$result[] = dereference($row);
Cũng làm việc nhưng dường như đều là xấu xí.
Đây có thể là một bản sao, http://stackoverflow.com/questions/1190026/php-copying-array-elements -by-value-not-by-reference –
Anh ta đang xử lý các đối tượng. Tôi đang xử lý nghiêm ngặt với mảng. – anomareh
Nếu mọi người upvoted câu trả lời của tôi, sau đó họ tin rằng tôi đã đúng. Nếu không phải vậy, thì rất có thể điều đó có nghĩa là bạn đã không làm rõ câu hỏi của bạn lúc đầu. Tôi tìm thấy nó khá thô lỗ về cuối cùng của bạn để nói với mọi người để downvote nỗ lực của tôi để giúp bạn, vì vậy tôi sẽ không cố gắng nữa. – zneak