여분필드 배열로 저장되어있는걸로 테이블에 넣을려고합니다 채택완료
이렇게 하면 문제없이 잘되는데요
<table border=1>
<?php
$list= array();
$list[] = array('wr_1' =>'과일', 'wr_2' =>'수박', 'wr_3' => '5000원');
$list[] = array('wr_1' =>'과일', 'wr_2' => '사과', 'wr_3' => '1200원');
$list[] = array('wr_1' =>'과일', 'wr_2' => '배', 'wr_3' => '2500원');
$list[] = array('wr_1' =>'과자', 'wr_2' =>'새우깡', 'wr_3' => '500원');
$list[] = array('wr_1' =>'과자', 'wr_2' =>'고래밥', 'wr_3' => '500원');
$list[] = array('wr_1' =>'음료수', 'wr_2' =>'사이다', 'wr_3' => '300원');
$tr = array(); $tr_html = '';
foreach ($list as $k => $v)
$tr[$v['wr_1']][] = "<tr><td>{$v['wr_1']}</td><td>{$v['wr_2']}</td><td>{$v['wr_3']}</td></tr>";
foreach ($tr as $k => $v) {
$rows = count($v);
if ($rows > 1) {
$v = preg_replace('#<tr><td>.+?</td>#', '<tr>', $v);
$v[0] = preg_replace('/<tr>/', "<tr><td rowspan=\"$rows\">$k</td>", $v[0]);
}
$tr_html .= implode('', $v);
}
echo $tr_html;
?>
</table>
아래처럼 여분필드에 있는 구분자를 배열로 담아서 해볼려는데 잘안됩니다 ㅠㅠ
$wr_1_arr = explode(",", $view['wr_1']); // 과일,과자,음료수
$wr_2_arr = explode(",", $view['wr_2']); // 수박,사과,배,새우깡,고래밥
$wr_3_arr = explode(",", $view['wr_3']); // 5000원,1200원,2500원,500원,500원,300원
몇시간째 하다가 잘안되서 도움을 청합니다 ㅠㅠ
작업하던 소스는 처음부터 다시 해볼려고 지워서 없습니다..
답변 3개
</p>
<p>$wr_1_arr = explode(",", $view['wr_1']); // 과일,과자,음료수</p>
<p>$wr_2_arr = explode(",", $view['wr_2']); // 수박,사과,배,새우깡,고래밥</p>
<p>$wr_3_arr = explode(",", $view['wr_3']); // 5000원,1200원,2500원,500원,500원,300원</p>
<p> </p>
<p>for ($i = 0; $i < count($wr_1_arr); $i++) {
echo "<tr>";
echo "<td>" . $wr_1_arr[$i] . "</td>";
echo "<td>" . $wr_2_arr[$i] . "</td>";
echo "<td>" . $wr_3_arr[$i] . "</td>";
echo "</tr>";
}</p>
<p>
답변에 대한 댓글 2개
<table border="1">
<?php
$wr_1_arr = explode(",", $view['wr_1']);
$wr_2_arr = explode(",", $view['wr_2']);
$wr_3_arr = explode(",", $view['wr_3']);
for ($i = 0; $i < count($wr_1_arr); $i++) {
echo "<tr>";
echo "<td>" . $wr_1_arr[$i] . "</td>";
echo "<td>" . $wr_2_arr[$i] . "</td>";
echo "<td>" . $wr_3_arr[$i] . "</td>";
echo "</tr>";
}
?>
</table>
[/code]
댓글을 작성하려면 로그인이 필요합니다.
https://www.php.net/array_combine
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
$wr_1_arr = explode(",", $view['wr_1']); // 과일,과자,음료수
를
$list[] = array('wr_1' =>'과일', 'wr_2' =>'수박', 'wr_3' => '5000원');
이렇게 만들고 싶다면
$w_key=array( 'wr_1', 'wr_2','wr_3','wr_4');
여기서 갯수는 같아야 합니다.
$new_arry= array_combine( $w_key, $wr_1_arr);
2차원 배열을 <table로 만드는 방법은 다양하지만
하시는 방법은 좀 복잡해 보이는군요.
https://stackoverflow.com/questions/4746079/how-to-create-a-html-table-from-a-php-array
참고해 보세요.
답변에 대한 댓글 1개
현제 대충 해결된거같아서 다시 한번더 검토중입니다^^;
댓글을 작성하려면 로그인이 필요합니다.
$tr_html .= implode('', $v); 는 배열을 쭈욱 일렬로 문자열로 변환한것입니다
explode 사용한 부분은 콤마로 구분해 배열로 변환한것이므로 여분필드에 들어가지 않습니다
여분필드에 들어가려면 문자열로 변환해서 넣어주세요
답변에 대한 댓글 1개
여분필드에 저장하는게 아니고 여분필드에 저장되어있는 구분자를
explode로 아래처럼 가져와서 작업할려고 하는겁니다..
$wr_1_arr = explode(",", $view['wr_1']); // 과일,과자,음료수
$wr_2_arr = explode(",", $view['wr_2']); // 수박,사과,배,새우깡,고래밥
$wr_3_arr = explode(",", $view['wr_3']); // 5000원,1200원,2500원,500원,500원,300원
소스를 수정하고있는데 잘안되서요..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데 위에 처럼 안될꺼같은기분이 듭니다
죄송하지만 위에소스 전체를 포문으로 바꿔서 알려주실수 있으실까요?
일단 제가 한번 도전해보겠습니다..후