Tôi có một mảng có thể chứa các phím số hoặc kết hợp, hoặc cả hai:Làm thế nào để loại bỏ các giá trị từ một mảng trong khi renumbering phím số
$x = array('a', 'b', 'c', 'foo' => 'bar', 'd', 'e');
print_r($x);
/*(
[0] => a
[1] => b
[2] => c
[foo] => bar
[3] => d
[4] => e
)*/
Tôi muốn để có thể loại bỏ một mục từ mảng, renumbering các phím không kết hợp để giữ cho chúng tuần tự:
$x = remove($x, "c");
print_r($x);
/* desired output:
(
[0] => a
[1] => b
[foo] => bar
[2] => d
[3] => e
)*/
Tìm các yếu tố quyền gỡ bỏ là không có vấn đề, đó là các phím có vấn đề. unset
không đổi lại khóa và array_splice
hoạt động trên số bù trừ, thay vì khóa (ví dụ: lấy $ x từ ví dụ đầu tiên, array_splice($x, 3, 1)
sẽ xóa phần tử "bar" chứ không phải phần tử "d").
này sẽ loại bỏ tất cả các phi các phím số. Vui lòng đọc lại câu hỏi gốc. – nickf