채택완료

x쵸딩의 주문내역에서

2020-06-26 (금) 08:37:20 4,453

옵션에 따른 이미지를 불러오는데요,,,

이미지박스에 이미지주소가 1개씩 나와야 하는데

배열전부가 나옵니다.

3667102531_1593128097.2854.png

배열의 1개씩 나오려면 어떻게 해야 할까요?

코드는 이렇습니다.

<?
$result = sql_query("SELECT it_img1 FROM g5_shop_item WHERE it_id = '$opt[it_id]' ");
 for($i=0; $row=sql_fetch_array($result); $i++) {
?>
<ul class="gallery">
<div style="width: 70px;
    padding: 5px;
    text-align: center;
    border: 1px solid #6a6afa;margin-bottom:3px">

<?php echo $row[it_img1];?>


</div>
</ul>

<? } ?>

답변 3개 / 댓글 1개

채택된 답변
+20 포인트
2020-06-26 (금) 23:35:13
Copy
// io_id에서 숫자값을 구하는 방법은 다양합니다. 그 중 정규식으로 구하는 방법 남깁니다.

preg_match('/^\d+/', $row['io_id'], $match);
echo explode('|', $row['it_img1'])[$match[0]-1];

 

// explode() 설명 및 예제를 읽어봤다면...

$t = explode('▲', $row['io_id']); // 예) 값 가운데, 구분하는 문자로 분리. $t[0]='3번', $t[1]='3'

echo explode('|', $row['it_img1'])[$t[1]-1]; // 이미지 구분 문자로 분리 후, 위에서 구한 숫자값으로 접근.

답변에 대한 댓글 1개

2020-06-27 (토) 01:10:01
친절한 설명 감사드립니다. 성공해보겠습니다~
2020-06-26 (금) 22:31:33

상품옵션인데요 고객이 주문할 때 io_id 3번째 3번3을 신청하면 

it_img1배열중 이미지|이미지|이 이미지|이미지|

배열중 3번째를 불러와야 하는 내용입니다.

3667102531_1593178085.6432.png

2020-06-26 (금) 13:48:35

출력된 결과물을 보니 '|'으로 구분된 문자열 값인데,

아래처럼 explode() 함수를 이용해 간단하게 첫 값만 출력할 수 있습니다.

Copy
<?=explode('|', $row['it_img1'])[0]?> // PHP v5.4 이상

// PHP v5.4 미만은 아래처럼

<?=reset(explode('|', $row['it_img1']))?>

+ explode()

- https://www.php.net/manual/en/function.explode.php

- http://docs.php.net/manual/kr/function.explode.php

+ reset()

- https://www.php.net/manual/en/function.reset.php

- http://docs.php.net/manual/kr/function.reset.php

답변을 작성하려면 로그인이 필요합니다.