여분필드 배열로 저장되어있는걸로 테이블에 넣을려고합니다
본문
이렇게 하면 문제없이 잘되는데요
<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
$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원
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>";
}
$tr_html .= implode('', $v); 는 배열을 쭈욱 일렬로 문자열로 변환한것입니다
explode 사용한 부분은 콤마로 구분해 배열로 변환한것이므로 여분필드에 들어가지 않습니다
여분필드에 들어가려면 문자열로 변환해서 넣어주세요
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
참고해 보세요.