unset()을 사용한 후에 배열 순서를 잃는 데 약간의 문제가 있습니다. 여기서 먼저 코드이다 :PHP unset + undefined 오프셋
$id = $_GET['id'];
for($i = 0; $i < count($my_array); $i++)
{
if($my_array[$i] == $id)
{
unset($my_array[$i]);
}
}
은 $ my_array 배열의 4 개 항목 $ my_array 배열 [1] $ ID와 동일한 가정을 갖는다. 내가 $ my_array에 foreach()를 실행하려고하면 unset Offset : 1 오류가 발생합니다. print_r ($ my_array)을 실행할 때 $ my_array [0], $ my_array [2] 및 $ my_array [3]을 얻습니다.
나는 왜 그런 일이 벌어지고 있는지, 제 질문은, 항목 2에 '항목 1'을 남기고 배열의 나머지 부분에 나머지 항목을 남기도록 배열을 다시 색인하는 방법이 있는지를 완전히 이해합니다. ?
reindex ($ my_array)와 같은 것이 멋질 것입니다. 나는 새로운 배열을 가진 루프를 위해 또 다른 루프를 실행할 수 있고 그것들을 수동으로 전송할 수 있다는 것을 알고있다. 그러나 한 단계의 해결책은 굉장 할 것이다. 나는 아무 것도 찾을 수 없었다.
너는 락. 나는 이미 그것을 시도했지만. 우리는 단지 오전 2시 이후에이 것을 비난 할 것입니다.) 감사합니다. –
@Adam 글쎄, 지난 7 시부 터 다음과 같습니다 : p 나는 잠을 자러 갈 것입니다. – Artefacto
@Adam 그런데'unset '후에 foreach를 사용하여 now-one-element-short 배열을 반복 할 수 있습니다. for 루프로 반복하기 때문에 다시 인덱스하는 경우 불필요합니다. 그냥'foreach' 또는'reset'과'next'를 사용하십시오. – Artefacto