이 질문에는 몇 가지 답변이 있지만 특정 요소가 제거 될 때 (초기 색인이 저장되기 때문에) 새로운 배열의 색인을 사용하여 재생 unset
하거나 array_diff
여러 가지 문제가 있었기 때문에 더 많은 것을 추가하고 싶습니다.
나는 예제로 돌아갑니다.
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
$array_without_strawberries = array_diff($array, array('strawberry'));
또는
$array = array('apple', 'orange', 'strawberry', 'blueberry', 'kiwi');
unset($array[array_search('strawberry', $array)]);
결과를 인쇄하면 다음을 얻을 수 있습니다.
foreach ($array_without_strawberries as $data) {
print_r($data);
}
결과 :
> apple
> orange
> blueberry
> kiwi
그러나 색인이 저장되므로 다음과 같은 요소에 액세스 할 수 있습니다.
$array_without_strawberries[0] > apple
$array_without_strawberries[1] > orange
$array_without_strawberries[3] > blueberry
$array_without_strawberries[4] > kiwi
따라서 최종 배열은 다시 색인화되지 않습니다. 그래서 당신은 unset
or array_diff
다음 에 추가해야합니다 :
$array_without_strawberries = array_values($array);
그 후 배열은 정상적인 색인을 갖습니다.
$array_without_strawberries[0] > apple
$array_without_strawberries[1] > orange
$array_without_strawberries[2] > blueberry
$array_without_strawberries[3] > kiwi
이 글과 관련하여 : Re-Index Array
그것이 도움이되기를 바랍니다.