Myślę, że może nie rozumiem poprawnie, w jaki sposób array_splice ma działać. Rozumiem, że pierwszym parametrem jest początkowa tablica, drugim parametrem jest początek, a trzeci to długość lub liczba elementów do usunięcia/zamiany.Jak mogę usunąć pojedynczego elementu tablicy przy użyciu array_splice w php?
Tak więc, mają tę tablicę (wyjście print_r)
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))
że chce, aby całkowicie usunąć drugi element (tablicę z indeksem 1; TypeFlag = C, itd.) Nie chcą zastąp to czymkolwiek; aby zwrócić tablicę z pozostałymi dwoma elementami. Próbowałem to (gdzie koszyk jest nazwą tablicy):
$cart = array_splice($cart, 1,1);
Ale to, co skończy się to tym, kiedy robi print_r: Pojawia
Array ([0] => Array ([TypeFlag] => C [qty] => 2 [denom] => 25 [certMessage] => [totalPrice] => 50))
więc być usunięcie 0 i 2 i pozostawiając 1 jako pozostałą część. Co ja robię źle?
Jeśli więc mówić robiąc to wewnątrz funkcji i potrzebując zwrócić tablicę minus wybraną wartość, czy muszę najpierw przypisać $ cart do wartości tymczasowej (np. $ cartTemp = $ cart), a następnie spliczyć, a następnie przypisać tablicę do $ cart? Czy mogę po prostu zrobić array_splice ($ koszyk, 1, 1), a następnie zwrócić koszyk $? NIGDY UMYSŁ - po prostu wypróbowałem i działa, jeśli po prostu wykonuję array_splice, a następnie zwracam $ cart. Dzięki. – EmmyS
Nie. Nie ma potrzeby przypisywania go do temp. Po prostu wywołaj funkcję, przekazując jej tablicę, a funkcja zmieni tablicę. – codaddict
unset wymaga indeksowanych tablic, jeśli tablica nie ma indeksów unset dodaje je samodzielnie, a jeśli chcesz mieć kolekcję bez indeksów, wszystko jest w porządku .. – CookieMonster