배열 요소를 제거한 다음 배열의 색인을 다시 생성하는 방법
PHP배열 요소를 제거한 다음 배열의 색인을 다시 생성하는 방법
배열에 문제가 있습니다. 나는 아래와 같이 수정할 어레이를 하나 가지고있다. 나는 그것의 요소 (요소)를 색인으로 제거한 다음 배열을 다시 색인화하려고합니다. 가능한가?
$foo = array(
'whatever', // [0]
'foo', // [1]
'bar' // [2]
);
$foo2 = array(
'foo', // [0], before [1]
'bar' // [1], before [2]
);
해결법
-
==============================
1.
unset($foo[0]); // remove item at index 0 $foo2 = array_values($foo); // 'reindex' array
-
==============================
2.
array_splice($array, 0, 1);
http://php.net/manual/en/function.array-splice.php
-
==============================
3.array_shift ()를 사용하는 것이 좋습니다. 그러면 배열의 첫 번째 요소가 반환되고 배열에서 제거되고 배열의 색인이 다시 생성됩니다. 하나의 효율적인 방법으로 모두.
array_shift ()를 사용하는 것이 좋습니다. 그러면 배열의 첫 번째 요소가 반환되고 배열에서 제거되고 배열의 색인이 다시 생성됩니다. 하나의 효율적인 방법으로 모두.
-
==============================
4.
array_splice($array, array_search(array_value,$array),1);
-
==============================
5.함께 시도해보십시오.
함께 시도해보십시오.
$foo2 = array_slice($foo, 1);
-
==============================
6.
Unset($array[0]); Sort($array);
나는 이것이 왜 downvoted되고 있는지 모르겠지만 누군가가 그것을 시도하는 것을 귀찮게한다면, 당신은 그것이 작동한다는 것을 알아 차릴 것이다. 배열에서 정렬을 사용하면 배열의 키를 다시 할당합니다. 유일한 단점은 값을 정렬하는 것입니다. array_values를 사용하는 경우에도 키가 재 할당되므로 분명히 값이 정렬되는지 여부는 중요하지 않습니다.
-
==============================
7.array_merge를 사용하면 키를 다시 색인화합니다. 수동 상태 :
array_merge를 사용하면 키를 다시 색인화합니다. 수동 상태 :
http://php.net/manual/en/function.array-merge.php
이것이 내가 원래의 답을 찾은 곳입니다.
http://board.phpbuilder.com/showthread.php?10299961-Reset-index-on-array-after-unset()
-
==============================
8.xzyfer의 대답 외에도
xzyfer의 대답 외에도
함수
function custom_unset(&$array=array(), $key=0) { if(isset($array[$key])){ // remove item at index unset($array[$key]); // 'reindex' array $array = array_values($array); //alternatively //$array = array_merge($array); } return $array; }
용도
$my_array=array( 0=>'test0', 1=>'test1', 2=>'test2' ); custom_unset($my_array, 1);
결과
array(2) { [0]=> string(5) "test0" [1]=> string(5) "test2" }
from https://stackoverflow.com/questions/5217721/how-to-remove-array-element-and-then-re-index-array by cc-by-sa and MIT license
'PHP' 카테고리의 다른 글
MySQL 데이터베이스 테이블의 값을 웹 페이지의 HTML 테이블에 표시 (0) | 2018.09.20 |
---|---|
정적 함수를 사용하여 foreach, array_map 및 lambda 및 array_map의 성능 (0) | 2018.09.20 |
PHPMailer - SMTP 오류 : 서버에서 메일을 보낼 때 비밀번호 명령이 실패했습니다. (0) | 2018.09.20 |
PHP에서 두 개 이상의 클래스를 사용하여 클래스를 확장 할 수 있습니까? (0) | 2018.09.20 |
cURL을 사용하여 jSON 데이터를 얻고 데이터를 디코딩하는 방법 (0) | 2018.09.20 |