Tôi nghĩ rằng tôi có thể không hiểu chính xác cách array_splice được cho là hoạt động. Sự hiểu biết của tôi là tham số đầu tiên là mảng ban đầu của bạn, tham số thứ hai là phần tử bắt đầu tại, và tham số thứ ba là độ dài hoặc số phần tử cần xóa/thay thế.Làm thế nào tôi có thể loại bỏ một thành viên mảng bằng cách sử dụng array_splice trong php?
Vì vậy, tôi có mảng này (print_r đầu ra):
Array (
[0] => Array ([TypeFlag] => S [qty] => 1 [denom] => 25 [certMessage] => [totalPrice] => 25)
[1] => Array ([TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50)
[2] => Array ([TypeFlag] => V [qty] => 2 [denom] => 25 [certMessage] => test [totalPrice] => 50))
Tôi muốn gỡ bỏ hoàn toàn yếu tố thứ hai (mảng với chỉ số 1; TypeFlag = C, vv) Tôi không muốn thay thế nó bằng bất cứ thứ gì; chỉ để trả về mảng với hai phần tử còn lại. Tôi đã thử này (nơi giỏ là tên mảng):
$cart = array_splice($cart, 1,1);
Nhưng những gì tôi kết thúc với điều này là khi làm một print_r:
Array ([0] => Array ([TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50))
Vì vậy, nó dường như được gỡ bỏ 0 và 2 và để lại 1 là phần còn lại. Tôi đang làm gì sai?
Vì vậy, nếu tôi làm điều này bên trong một hàm và cần trả về mảng trừ đi giá trị đã chọn, trước tiên tôi có cần gán $ cart cho một giá trị tạm thời hay không (ví dụ: $ cartTemp = $ cart), sau đó tạo mối nối, sau đó gán lại mảng cho $ cart? Hoặc tôi chỉ làm array_splice ($ cart, 1, 1), sau đó trả lại $ cart? KHÔNG BAO GIỜ MIND - chỉ cần thử nó và nó hoạt động nếu tôi chỉ làm array_splice và sau đó trả lại $ cart. Cảm ơn. – EmmyS
Không. Không cần phải gán nó vào một temp. Chỉ cần gọi hàm, chuyển nó qua mảng và hàm sẽ thay đổi mảng. – codaddict
unset cần các mảng được lập chỉ mục, nếu mảng không có chỉ mục không được đặt, hãy tự thêm chúng và nếu bạn muốn bộ sưu tập của bạn không có chỉ mục, nó sẽ làm mọi thứ lộn xộn lên. – CookieMonster