php 질문 좀 하겠습니다. 채택완료
$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개
배열은 언제나 키값과 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를
사용해주시면 좋으실거에요.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인