PHP 배열관련 질문드려봅니다!
본문
안녕하세요.
php를 하나도 안배워본.. 그누보드 검색하며 몇번 쳐보고 그런게 다인 퍼블리셔입니다.
checkbox안의 value값을 다른페이지로 넘기는 작업을 하는 중인데요!
<form action="test2.php" method="POST">
<input type="checkbox" name="case[]" value="A|B|C|D|E"> case1<br>
<input type="checkbox" name="case[]" value="가|나|다|마|바"> case2<br>
<input type="submit"><br>
</form>
여기서 submit을하면 test2.php로 값이 넘어가게 되어 있습니다.
<?php
$case = $_POST['case'];
// POST로 넘어온 값들을 $check에 저장
$array = array($case);
// check의 값들을 새로운 배열에 저장
foreach ($array as $value){
$result = implode("|",$value);
echo "<pre>";
echo "<input type='text' name='' value='$result[0]'>";
echo "<input type='text' name='' value='$result[1]'>";
echo "<input type='text' name='' value='$result[2]'>";
echo "<input type='text' name='' value='$result[3]'>";
echo "<input type='text' name='' value='$result[4]'>";
echo "</pre>";
}
?>
다만.. |로 나눠서 저장이 되긴했는데 홀수열은 $result[1], $result[3], $result[5]~~ 는 | << 이거 자체가 출력됩니다...
또한 for문으로 자동으로 배열의 개수만큼 반복되게 하고 싶습니다 ㅠ
조언이나.. 코드 대환영합니다 도와주세요!
답변 2
1. 이미 배열로 넘어왔기때문에
$array = array($case);
이 부분을
$array = $case;
로 변경해주시고
2. implode 는 배열을 문자열로 합치는 함수입니다.
$result = implode("|",$value);
이 부분을
$result = explode("|",$value);
로 수정해보세요
foreach ($array as $value){
// $result = implode("|",$value);
// 배열 값들을 "|" 로 나누어서 한 문자열로 저장
$result = explode("|",$value);
foreach ($result as $val){
echo $val;
}
}