관리 메뉴

웹개발자의 기지개

[PHP] 배열요소 중에서 특정값들을 삭제하기 본문

PHP

[PHP] 배열요소 중에서 특정값들을 삭제하기

http://portfolio.wonpaper.net 2020. 12. 21. 06:35

배열A (작업요소가 들어 있는 배열)

배열B (삭제할 특정값이 들어 있는 배열)

A에서 B요소들을 삭제하고 남은 새로운 배열C 를 생성하는 방법

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$ary_ori = array(1923242528);    // 배열 값
$ary_del = array(20,23,25);              // 삭제할 값(배열)
 
foreach($ary_ori as $k => $v){
    foreach($ary_del as $v2){
        if($v == $v2){
            unset($ary_ori[$k]);
        }  
    }
}
 
print_r($ary_ori);
?>
cs

 

 

 

출처 : okkks.tistory.com/1006

 

[결과화면]

Array ( [0] => 19 [2] => 24 [4] => 28 )

 

for 문으로 돌려보면,

 

ary_ori[0] = 19,
ary_ori[1] = ,
ary_ori[2] = 24,

 

기존 배열에서 인덱스값을 그대로 남아있고 값만 사라진 형태로 결과가 나타났다.

 

 

결국, 배열내 요소값도 없애고 배열 인덱스도 차례로 정리하는 로직이 들어 있도록 소스를 고안해 보았다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
<?
$target = array(1923242528);
 
//삭제실행
$result = array_diff($targetarray(20,23,25));
 
//index 채우기
$result = array_values($result);
 
 
print_r($result);
?>
cs

 

 

[결과화면]

Array ( [0] => 19 [1] => 24 [2] => 28 )

 

이제는 index도 차례로 정리되어 있고, 삭제하고자 하는 값도 없앨수 있다.

배열 요소를 문자열로 해도 정상 동작한다.

 

 

 

 

 

Comments