2014-10-14 4 views
1

PHP로 배열을 가지고 있는데 여기에는 다양한 요소가 포함될 수 있습니다. 문자열 인 요소 만 유지하고 나머지 요소는 모두 제거 할 수 있습니까?PHP의 배열에서 문자열이 아닌 요소를 모두 제거합니다.

은 내가

foreach ($array as $key => $val) 
    if (gettype($val) !== 'string') 
    unset($array[$key]); 

할 수있어하지만 난 그것을 할 수있는 쉬운 방법을 부탁합니다.
참고 : 배열의 키 및 동일 여부를 신경 쓰지 않습니다.

답변

2

PHP의 함수 array_filter()is_string()을 사용하면 한 줄로 입력 할 수 있습니다.

$new = array_filter($array, "is_string"); 

array_filter()는 콜백 함수 (이 경우 is_string())에 전달 된 경우 true를 반환 콜백 것이다 배열 만 elemets 유지.

+3

왜 즉시 물어보고 대답합니까? : D 당신은 이것을 공유하고 싶습니까? –

+1

@ bali182 사람들이 무언가를 발견하거나 해결할 때 [우리가 명시 적으로 권장] (http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-questions/) 약간의 시간이 걸린 문제. 단지 물어 보는 것을 알고 싶어하는 질문의 형태로 뭔가를 공유하는 것입니다. 원하는 경우 별도의 답변을 올릴 수 있습니다. –

+0

아니, 대답은 절대적으로 정확합니다, 나는 그 질문을 무작위로 공유하는 것이 매우 특별하지 않은 것을 발견하지 못했습니다. –

관련 문제