[PHP] Array_map 함수 : 배열 한번에 다루기

Posted by Readiz
2014.01.05 02:06 Creation/Programming




간단 팁이에요.. 드디어 php를 이용해서 mysql을 통제하는 방법을 익히고 있는데,

문제는 php로 날아오는 많은 변수값들을 escape시킬 필요가 있단 말이죠.. 예를 들면 이런식인거죠.


	
    $p_id = mysql_escape_string($_REQUEST['id']);
    $p_work = mysql_escape_string($_REQUEST['work']); 
	


escape시킬 변수가 한두개면 괜찮은데, 그렇지 않은 경우가 문제입니다. 이럴 때 사용할 수 있는 함수가 array_map이라는 함수인데요, reference에 나온 내용은



Description ¶

array array_map ( callable $callback , array $array1 [, array $... ] )

array_map() returns an array containing all the elements of array1 after applying the callback function to each one. The number of parameters that the callback function accepts should match the number of arrays passed to the array_map()


간단하군요. 실 사용 예를 볼까요, 위의 경우에는



    $_REQUEST = array_map('mysql_escape_string', $_REQUEST); 
	

처럼 사용하면 간단하게 배열 안에 들어있는 문자열들이 전부 escape됩니다.

추가적으로, 이 배열에 있는 것에 다 접근하려면, foreach함수를 쓰면 되지요.


	
	foreach ($_REQUEST as $element) {
		echo $element . '<br/>';
	} 
	


파이썬하고는 모양이 반대입니다.


	
for element in REQUEST:
    print element 
	

아예 다르면 좋은데 전 비슷한 놈들이 짜증나요.. as와 in의 의미차이겠죠.

Tags
이 댓글을 비밀 댓글로
    • rico345
    • 2014.02.20 23:59 신고
    콜백 함수에 인자가 2개 이상일땐 어떻게 해야하나요?
    예를 들면 mysqli_real_escape_string의 경우 첫번째 인자로 리소스를 넘기고 두 번째 인자로 이스케이프할 문자를 넘기잖아용?
    • array array_map ( callable $callback , array $array1 [, array $... ] )
      에서 보실 수 있듯이,
      callback함수를 첫번째 인자로 넘기고, 두번째, 세번째에다가 각각 값들을 넘기면 됩니다. ^^

티스토리 툴바