php array에서 array값 변경 질문
본문
안녕하세요
기숙사, 차량유지비, 교육비 지원, 자녀 학자금 지원, 주택자금 지원, 직원대출 제도, 모성보호시설 등으로 구성되어있는 항목들이 있습니다.
해당 항목을 DB에 배열로 저장하여, 글쓸때 체크박스로 선택하면 배열로 들어가 저장하는 식으로 했는데,
향후를 생각하면 DB용량 부분에 문제가 있을것 같아서 저장 값을 기숙사면 1, 차량유지비면 2, 교육비 지원이면 3 이런식으로 DB에 저장하도록 했습니다. 물론 배열
예시)
기존
[차량유지비, 교육비 지원, 주택자금 지원]
변경
[2, 3, 5]
문제는 글 읽는 단계에서 php로 배열을 불러오면 해당 값에 맞는 차량유지비, 교육비 지원, 주택자금 지원 등 해당 값에 맞는 값으로 변경하여 출력이 이뤄져야하는데 array_flip, array_replace 등 함수를 이용해봤지만 어떻게 해야할지 도무지 감이 안잡혀서 질문드립니다.
어떻게 해야 좋을지 자문구합니다.
답변 3
<?php
function values_from_key($values, $keys) {
$arr = array_intersect_key($values, array_flip($keys));
$arr = array_replace(array_flip($keys), $arr);
$arr = array_values($arr);
return $arr;
}
$arr_sample = [
'1' => '기숙사',
'2' => '차량유지비',
'3' => '교육비 지원',
'4' => '식대비',
'5' => '주택자금 지원',
];
$arr_db = [2, 3, 5];
print_r(values_from_key($arr_sample, $arr_db));
/*
Array
(
[0] => 차량유지비
[1] => 교육비 지원
[2] => 주택자금 지원
)
*/
$arr_db = [4, 1];
print_r(values_from_key($arr_sample, $arr_db));
/*
Array
(
[0] => 식대비
[1] => 기숙사
)
*/
?>
$arr = array(2=>'차량유지비', 3=>'교육비 지원', 5=>'주택자금 지원');
이렇게 선언을 해주고..
출력하는 화면에서..
echo $arr[$key];
하면 해당 $key 값에 따라서 출력이 됩니다.
배열 값으로 키 값을 찾으려는 거 아닌가요?
function getKeyByValue($array, $search_value) {
foreach ($array as $key => $value) {
if ($value == $search_value) {
return $key;
}
}
return null;
}
$array = array(
"apple" => "red",
"banana" => "yellow",
"grape" => "purple"
);
$search_value = "yellow";
$result = getKeyByValue($array, $search_value);
if ($result !== null) {
echo "키: " . $result . "\n";
} else {
echo "값을 찾을 수 없습니다.\n";
}
답변을 작성하시기 전에 로그인 해주세요.