IT story

배열을 다시 색인화하는 방법은 무엇입니까?

hot-time 2021. 1. 5. 19:18
반응형

배열을 다시 색인화하는 방법은 무엇입니까?


내 배열은 다음과 같습니다.

array(
  0 => 'val',
  2 => 'val',
  3 => 'val',
  5 => 'val',
  7 => 'val'
);

어떻게 키를 재설정 할 수 0, 1, 2, 3, 4있습니까?


array_values 사용 :

$reindexed_array = array_values($old_array);

array_splice($old_array, 0, 0);

배열을 정렬하지 않고 두 번째 배열을 만들지 않습니다.


사용하여 sort($array);

여기에서 PHP 문서를 참조 하십시오 .

내가 권하고 싶습니다 sort이상 array_values이 두 번째 배열을 생성하지 않으므로. 다음 코드를 사용하면 $ reindexed_array 및 $ old_array라는 두 개의 배열이 공간을 차지합니다. 불필요한.

$reindexed_array = array_values($old_array);


array_splice($jam_array, 0, count($jam_array));

중간 인덱스가 누락 된 배열을 정렬하려면 count를 사용 하는 것이 더 안전합니다. 따라서 0첫 번째 인덱스 및 count($jam_array)/ 또는 sizeof($jam_array)배열의 소수점 위치, 즉 마지막 인덱스를 반환합니다.


PHP7.4부터는 splat 연산자를 사용하여 값을 배열로 압축 해제하여 함수 호출없이 재 인덱싱 할 수 있습니다. 이것을 "재 포장"이라고 생각하십시오.

코드 : ( 데모 )

$array = array(
  0 => 'val',
  2 => 'val',
  3 => 'val',
  5 => 'val',
  7 => 'val'
);

$array = [...$array];

var_export($array);

산출:

array (
  0 => 'val',
  1 => 'val',
  2 => 'val',
  3 => 'val',
  4 => 'val',
)

참고 :이 기술은 연관 키에서 작동 하지 않습니다 (스 플래트 연산자가 이러한 키를 질식시킵니다). 숫자가 아닌 데모

파손은 문자열 키의 압축을 풀 수없는 것으로보고 되지만 키가 모두 숫자 여야한다고 말하는 것이 더 정확합니다. Integer as string demoFloat demo

참조 URL : https://stackoverflow.com/questions/11224821/how-to-reindex-an-array

반응형