foreach($array as $key => $value)
if (strlen($value) == 0)
unset($array[$key]);
너무 많은 기본 제공 배열 기능이 있습니까?이렇게하는 PHP 함수가 내장되어 있습니까?
foreach($array as $key => $value)
if (strlen($value) == 0)
unset($array[$key]);
너무 많은 기본 제공 배열 기능이 있습니까?이렇게하는 PHP 함수가 내장되어 있습니까?
난 당신이을 array_filter
를 사용할 수있다 (인용) 일 의 종류를 할 가정 : 콜백 함수로 전달 입력 배열의 각 값 이상
로 반복합니다.
콜백 함수 이true
을 반환하면 입력의 현재 값이 배열의 결과로 반환됩니다.
배열 키가 보존됩니다.
: 그리고 콜백이 제공되지 않으면
,
FALSE
동일한 모든 입력 항목 제거 될 것이다 ( converting to boolean 참조). 코드의이 부분 같은 것을 사용하여 예를 들어
:
$array = array(
'test' => 'glop',
'a' => 123,
'b' => '',
'c' => 'blah',
'd' => '',
);
$array = array_filter($array);
var_dump($array);
다음과 같은 출력을 얻을 것이다 : 나는 콜백 함수를 사용하지 않았다
array
'test' => string 'glop' (length=4)
'a' => int 123
'c' => string 'blah' (length=4)
을, 여기 - "빈 값"이 모두 제거되었습니다. ;; 까다로운 부분은 그 값으로 0
을 가진 엔트리를 가지고 있었다면, 그것도 제거되었을 것입니다 ...
상황에 따라, 그것은 만족 스럽거나 그렇지 않을 것입니다. 특정 콜백 함수를 사용하여 원하는 것을 정확히 수행하고 필터링 된 내용을 효과적으로 제어 할 수 있습니까?
$array = array(
'test' => 'glop',
'a' => 0,
'b' => '',
'c' => 'blah',
'd' => '',
);
function my_function($a) {
if ($a === '') {
return false;
}
return true;
}
$array = array_filter($array, 'my_function');
var_dump($array);
는 (배열의 'a' => 0
라인을 참고)
그리고 지금 우리가 얻을 :
array
'test' => string 'glop' (length=4)
'a' => int 0
'c' => string 'blah' (length=4)
즉
그리고 여기가 콜백 함수와 예제입니다 콜백 함수를 사용하면(여기서는 정확히 빈 문자열을 포함하고 형식 변환이없는 행)을 필터링하여 더 명확하게 지정해야합니다.
"이"가 의미하는 것을 정의해야합니다. – pixeline
[해당 값을 기반으로 배열에서 요소를 제거 할 수 있습니까?] (http://stackoverflow.com/questions/2169669/remove-element-from-array-based-on-its-value) – Gordon