2010-06-24 25 views
20

Tôi có hai mảng: Array ([0] => 2 [1] => 3)Array ([0] => 2). Tôi muốn lấy giá trị, không nằm trong mảng thứ hai. Vì vậy, tôi đã sử dụng chức năng array_diff nhưng kết quả của tôi sẽ nhận được Array ([1] => 3) Thực ra đây là kết quả. Nhưng một vấn đề nhỏ ở đây, vị trí của nó là (quan trọng) 1. Tôi muốn kết quả vào một mảng mới bắt đầu từ vị trí thứ 0, tức là, Array ([0] => 3).Làm thế nào để thiết lập lại các chỉ mục trong kết quả array_diff?

Có ai giúp tôi không?

+0

Bạn có thể giải thích lý do tại sao các khóa ban đầu tại chỗ gây ra sự cố không? – salathe

Trả lời

36

bạn có thể sử dụng array_values(array_diff($arr1, $arr2)); nếu đơn đặt hàng không quan trọng

12

Bạn nên chạy array_values() vào kết quả và điều này sẽ cung cấp cho bạn một mảng mới với chỉ số bắt đầu từ 0.

Đây là một thiếu sót tiếng của array_diff(), kiểm tra php docs.

Các vấn đề liên quan