Categories: PHP

배열 일부요소를 제거하고자 할때

배열 에서 특정 요소만 빼고 배열을 유지하고자 할때를 대비하여 다음과 같은 함수를 만들었다.

<?
function arr_cut($arr,$chk){
    if(count($arr)>0){
        $new_arr = Array();         
        foreach($arr as $key => $val){
            $is_ok = False;
            for($i=0;$i<count($chk);$i++){
                if($chk[$i] == $key && !$is_ok) $is_ok = True;
            }
            if(!$is_ok) $new_arr[$key] = $val;
        }
        return $new_arr;
    } else  return $arr;
}
?>

e.g.

<?
$ar = array("asdf" => "1234", "xcv" => "3333", "asdfasdf" => "xxxxx", "33sad" => "xxxx");
$chk = array("xcv","asdfasdf");
print_r(arr_cut($ar,$chk));
?>

예를 들면.. 다음과같이 활용할 수 있겠다.

<?
$sql = "select * from table limit 1";
$qry = mysql_query($sql);
$res = mysql_fetch_array($qry);

//$res 배열의 요소중 일정부분만 json으로 encoding 하여 해당값을 전달한다.
//요럴때 사용하는 겁니다.

$result = array_cut($res,$res_cut);
echo json_encode($result);
?>