php 질문 좀 하겠습니다.
본문
<?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."<br>";
echo "val값: ".$v."<br><br>";
}
해보시면, 키값을 기준으로 카운트되서 for문이 돌고, 키와 value값을 얻을수 있습니다.
foreach는 만약 $arr 에 아무 값이 없으면, 오류가 발생하니, if(is_array($arr)) 일때, foreach를
사용해주시면 좋으실거에요.