테스트 사이트 - 개발 중인 베타 버전입니다

php 질문 좀 하겠습니다. 채택완료

위즈라이트 10년 전 조회 3,426

    $sql = " select group_concat(wr_1) f_tag from {$write_table} ";     $row = sql_fetch($sql);     $row['f_tag'] = trim($row['f_tag'], ',');     $arr = explode (',' ,$row['f_tag']);     foreach ($arr as $k => $v)     {      $ntags[$v]++;     }     arsort($ntags); ?>

 

foreach ($arr as $k => $v) 이건 어떻게 작동하나요?

오류도 있으면 알려주세요. 

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

답변 1개

채택된 답변
+20 포인트
10년 전

배열은 언제나 키값과 value 값으로 구분됩니다.  예를 들어.

 

$arr['test1'] = "val1";

$arr['test2'] = "val2"; 

$arr[3] = "val3";

 

위의 arr배열 변수에서 키는 "test1","test2",3 이 되고, value는 "val1","val2","val3" 이 됩니다.

 

만약에 어떤 배열변수가 가진 키 만큼만 for문을 돌려서 value를 알고 싶으실때

foreach($arr as $k => $v){

echo "키값: ".$k." ";

echo "val값: ".$v." ";

}

 

해보시면,  키값을 기준으로 카운트되서 for문이 돌고,  키와 value값을 얻을수 있습니다.

foreach는 만약 $arr 에 아무 값이 없으면, 오류가 발생하니,  if(is_array($arr)) 일때,  foreach를

사용해주시면 좋으실거에요.

로그인 후 평가할 수 있습니다

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

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

로그인