'php array'에 해당되는 글 2건

728x90

PHP 에서 검색어를 여러개 입력하여 AND 조건이나 OR 조건을 검색해야 하는 경우가 있다.


검색어가 여러개면 보통 이렇게 검색어 처리를 하기 쉽다.

$keystr = explode(" ", $keyword);

$sqlque .= " and (eng LIKE '%".trim($keystr[0])."%')";


if($keystr[1]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[1])."%')";
}
if($keystr[2]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[2])."%')";
}
if($keystr[3]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[3])."%')";
}
if($keystr[4]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[4])."%')";
}
if($keystr[5]) {
    $sqlque .= " and (eng LIKE '%".trim($keystr[5])."%')";
}


이걸 좀더 깔끔하기 처리하는 방법은 아래처럼 array 와 join 함수를 이용하는 것이다.

$keystr = explode(" ", $keyword);
$exp_query = array();
for ($i = 0; $i < count($keystr) ; $i++) {
    array_push($exp_query, "eng LIKE '%".$keystr[$i]."%'" );
}
if(count($exp_query) > 0){
    $sqlque .= " and ( ";
    $sqlque .= join(" and ", $exp_query);
    $sqlque .= " ) ";
}
echo $sqlque; // 쿼리문이 정상인지 확인


블로그 이미지

Link2Me

,
728x90

PHP array(배열)


배열(array)은 한번에 하나 이상의 값들을 담을 수 있는 특별한 변수이다.
PHP 에서는 array() 함수를 사용하여 배열을 만든다.
array 를 사용하면 코딩도 줄여주면서 쉽게 여러 변수를 생성할 수 있는 장점이 있다.
PHP 에는 배열의 세 가지 유형이 있다:
    Indexed arrays - 숫자 인덱스를 갖는 배열
    Associative arrays - 이름 키(named keys)를 갖는 배열
    Multidimensional arrays - 하나 이상의 배열을 포함하는 배열

1. Indexed arrays
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);  // count() 함수는 배열의 길이(요소의 개수)를 반환하는데 사용된다.

for($i=0;$i < $arrlength; $i++)
{
  echo $cars[$i];
  echo "<br>";
}
?>
array 에 많은 값을 담게 되면 몇 번째의 내용인지 종종 헷갈릴 수 있는데 이러한 것을 막기 위해 count 함수를 이용한다.
그런데 count() 함수는, "요소 개수가 0인 배열"과 "존재하지 않는 배열" 모두 0을 반환하기에 혼란스러운 점이 있다.
이때는 isset() 함수를 사용하여 그 배열이 존재하는지 우선 체크하는 것이 좋다.

<?php
$cars=array("Volvo","BMW","Toyota");
sort($cars);    // 오를차순으로 정렬, rsort()는 내림차순으로 정렬
$arrlength=count($cars);  // count() 함수는 배열의 길이(요소의 개수)를 반환하는데 사용된다.

for($i=0;$i < $arrlength; $i++)
{
  echo $cars[$i];
  echo "<br>";
}
?>

2. 연관 배열(Associative Arrays)
연관 배열(Associative arrays)은 값을 할당하는데 이름 키(named keys)를 사용하는 배열이다

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
배열로 표기된 것을 아래와 같이 표기할 수 있다.
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");

foreach($age as $key => $value) {
     echo "Key=" . $key . ", Value=" . $value;
     echo "<br>";
}
?>

결과는
Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43

=> 를 기준으로 좌측에 있는 부분을 키값이라고 하고, 우측에 있는 부분을 값이라고 한다.

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
asort($age);    // 값에 따라 오름차순으로 연관된 배열을 정렬한다.
foreach($age as $key => $value) {
     echo "Key=" . $key . ", Value=" . $value;
     echo "<br>";
}
?>

ksort() 는 키값에 따라 오름차순으로 연관된 배열을 정렬한다.
arsort() 는 값에 따라 내림차순으로 연관된 배열을 정렬한다.
krsort() 는 키값에 따라 내림차순으로 연관된 배열을 정렬한다.


foreach ($array as $key=>$value) {
    echo '순번 '. ($key+1) . ' 번의 DB idx = '. $value . ', ';
    // DB에 결과를 반영하고자 하는 쿼리문을 적어준다
    $query = 'UPDATE table SET orderNO = '.($key+1).' WHERE idx = '.$value.' LIMIT 1';
    mysql_query($query) or die (mysql_error());
}

3. Multidimensional Arrays
다차원 배열(multidimensional arrays)은 하나 이상의 배열을 포함하는 배열이다.
<?php
$cars = array
   (
   array("Volvo",22,18),
   array("BMW",15,13),
   array("Saab",5,2),
   array("Land Rover",17,15)
   );
 
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>


4. list 함수

list함수는 배열의 값을 배열의 순서대로 여러 개의 변수에 할당 하는 함수이다.


    function getCurrentDate(){
        $year = date('Y');
        $month = date('m');
        $day = date('d');
       
        return array($year, $month, $day);
    }
   
    list($y, $m, $d) = getCurrentDate();   
    print "현재 날짜는 $y / $m / $d 입니다!!";


5. 기타

array_unshift() 함수 : 배열의 맨 앞에 값을 추가하고 싶을 때

 - array_unshift($R, $val); // array_unshift('배열명', '값')


array_push() 함수 : 배열의 끝부분에 값을 추가하고 싶을 때

 -  array_push($R, $val); // array_push('배열명', '값')


array_pop() 함수 : 배열의 끝부분을 제거하고 싶을 때

 - array_pop($R);

'Web 프로그램 > PHP 문법' 카테고리의 다른 글

[PHP기초] 삼항연산자 ?  (0) 2015.03.06
[PHP기초] continue 문  (0) 2015.03.05
[PHP기초] switch 문  (0) 2015.03.03
PHP 변수지정 기초지식 ★★★  (0) 2014.12.27
[PHP기초] PHP 파일 다루기  (0) 2014.11.28
블로그 이미지

Link2Me

,