빈 어레이입니다 요소 제거

일부 요소를 내용에 따라 사용자가 내 어레이입니다 비어 문장열 제출됨. 이러한 요소가 데릭쉐퍼드와 지루려면. 내가 다.

foreach($linksArray as $link)
{
    if($link == '')
    {
        unset($link);
    }
}
print_r($linksArray);

하지만 doesn& # 39, 빗나갔다. '아직' $ 링크자이 빈 요소를. 나는 그렇게 했던 '도 함께 빈 ()' 기능을 하지만 결과는 마찬가지다.

질문에 대한 의견 (2)
해결책

39 로 you&, re 다루는 문장열 배열입니다 사용할 됩니다 ['array_filter ()'] (https://secure.php.net/manual/en/function.array-filter.php), 편리하게 처리할 수 있는 진저한테 당신꺼에요:

print_r(array_filter($linksArray));

, 콜백하는 제공되지 않을 경우 모든 것을 유념해야 같은 항목을 어레이입니다 '거짓' (http://otl. [변환 부울입니다] [1]) 제거됨을. 그래서 & # 39 보존할지 할 경우, 즉 ',' # 39 요소가 정확한 문자열이어야 0& 사용자 정의 콜백하는 합니다.

// PHP < 5.3
print_r(array_filter($linksArray, create_function('$value', 'return $value !== "";')));

// PHP 5.3 and later
print_r(array_filter($linksArray, function($value) { return !is_null($value) && $value !== ''; }));

[1]: http://php.net/manual/en/language.types.boolean.php # 랑게지스티페s.불안스카스팅

해설 (13)

'Array_filter' 빈 요소를 제거하는 데 사용할 수 있습니다.

$emptyRemoved = array_filter($linksArray);

'0' (int) 의 경우, 다음 네 어레이입니다 사용할 수 있습니다.

$emptyRemoved = remove_empty($linksArray);

function remove_empty($array) {
  return array_filter($array, '_remove_empty_internal');
}

function _remove_empty_internal($value) {
  return !empty($value) || $value === 0;
}
  • EDIT:* 어쩌면 네 요소가 포함되어 있지만 비어 있지 않은 자체는 하나 이상의 공백. 'Array_filter' 사용하기 전에 사용할 수 있습니다 다음
$trimmedArray = array_map('trim', $linksArray);
해설 (4)

이 주제에 대해 가장 인기 있는 오토메이티드 절대적으로 잘못된.

다음 고려해보십시오 PHP 스크립트.

<?php
$arr = array('1', '', '2', '3', '0');
// Incorrect:
print_r(array_filter($arr));
// Correct:
print_r(array_filter($arr, 'strlen'));

그 이유는 무엇입니까? # 39, & # 39 redboot*용 문자열으로 때문에 단일 0&. 또한, 비록 문자 # 39 로 평가되는 부울입니다 거짓값 도왔으매 it& 빈 문자열, 그래도 여전히 필터링됨 받을 일은 아닙니다. 버그가 있는 것.

내장 함수 스트린 반군지역 필터링합니다 사용할 수 있는 기능이 있기 때문에 문자열, 제로 정수 (integer 의 경우 넌제로 되돌려줍니다 비어 있지 않은 빈 구체화하십시오. 한편, 비제 정수 항상 true 로 변환하면 부울을 평가하십시오 false 로 변환할 때 항상 제로 정수 평가하십시오 부울입니다.

그래서, 절대, 명확한, 정답 입니다.

$arr = array_filter($arr, 'strlen');
해설 (6)
$linksArray = array_filter($linksArray);

&quot 콜백하는 제공되는 모든 항목이 같을 수 없는 경우, 입력 거짓값 removed.&quot 됩니다. - http://php.net/manual/en/function.array-filter.php

해설 (3)
    $myarray = array_filter($myarray, 'strlen');  //removes null values but leaves "0"
    $myarray = array_filter($myarray);            //removes all null values
해설 (1)

그냥 할 수 있습니다.

array_filter($array)

array_filter: &quot 콜백하는 제공되는 모든 항목이 같을 수 없는 경우, 입력 거짓값 removed.&quot 됩니다. 즉, 요소, & # 39, & # 39 0& NULL 값으로, 0 # 39, & # 39,, (), FALSE 어레이입니다 제거됨을 너무.

다른 방법은 하는

array_diff($array, array(''))

& # 39, & # 39, NULL 값으로 되는 요소 제거 및 거짓값.

이렇게 하면 좋겠네요:)

# 업데이트

예를 들어보겠습니다.

$a = array(0, '0', NULL, FALSE, '', array());

var_dump(array_filter($a));
// array()

var_dump(array_diff($a, array(0))) // 0 / '0'
// array(NULL, FALSE, '', array());

var_dump(array_diff($a, array(NULL))) // NULL / FALSE / ''
// array(0, '0', array())

요약:

39, & # 39 - 0 또는 0&. # 39, & # 39 는 0 과 제거하시겠습니까 0&.

  • & # 39, & # 39, 허위 또는 NULL, & # 39, & # 39, 허위 · nulll 제거됩니다.
해설 (1)
foreach($linksArray as $key => $link) 
{ 
    if($link === '') 
    { 
        unset($linksArray[$key]); 
    } 
} 
print_r($linksArray); 
해설 (3)

다른 하나는 라이너 지루려면 빈 (&quot "; 빈 문자열) 의 요소는 너회의 어레이입니다.

$array = array_filter($array, function($a) {return $a !== "";});
  • 참고: 이 코드는 'null', '0' 와 '거짓' elements.* 고의적으로 계속

아님 트리밍할 너회의 어레이입니다 요소 1.

$array = array_filter($array, function($a) {
    return trim($a) !== "";
});
  • 참고: 또한 이 코드로 'null' 와 '거짓' elements.* 절감뿐만
해설 (4)

빠른 시일 안에:

이건 내 제안됩니다 코드:

$myarray =  array_values(array_filter(array_map('trim', $myarray), 'strlen'));

설명:

내가 생각하는 것이 아니라 ',' array_filter 사용할 수 있기 때문에 충분한 값을 like '공간' 와 '\n'. 이는 대개 스토리지에 적용부 좋지 않습니다.

그래서 내가 사용하는 제안하세요 array_filter array_map '와' 더 ''.

'는', '빈' array_map 트리밍할 array_filter 캐비닛용입니다 분리하십시오 값뿐만 스트린 '및' 가치 '는' 0 '유지' re 인덱스화를 array_values 캐비닛용입니다 필요한 경우에.

예제:

$myarray = array("\r", "\n", "\r\n", "", " ", "0", "a");

// "\r", "\n", "\r\n", " ", "a"
$new1 = array_filter($myarray);

// "a"
$new2 = array_filter(array_map('trim', $myarray));

// "0", "a"
$new3 = array_filter(array_map('trim', $myarray), 'strlen');

// "0", "a" (reindex)
$new4 = array_values(array_filter(array_map('trim', $myarray), 'strlen'));

var_dump($new1, $new2, $new3, $new4);

결과:

array(5) {
  [0]=>
" string(1) "
  [1]=>
  string(1) "
"
  [2]=>
  string(2) "
"
  [4]=>
  string(1) " "
  [6]=>
  string(1) "a"
}
array(1) {
  [6]=>
  string(1) "a"
}
array(2) {
  [5]=>
  string(1) "0"
  [6]=>
  string(1) "a"
}
array(2) {
  [0]=>
  string(1) "0"
  [1]=>
  string(1) "a"
}

온라인 테스트:

http://phpio.net/s/5yg0

해설 (0)

사용하는 경우 이 어레이에는 빈 요소를 제거한 후 사용하여 숫자 어레이입니다 하는 인덱스 재 [array_values] (http://php.net/manual/en/function.array-values.php) 기능:

array_values(array_filter($array));

참조: https://stackoverflow.com/questions/7558022/php-reindex-array

해설 (0)
      • 또는 최소한 true 로 아직 완전히 틀린 답이 가장 투표한 OP 가 빈 문자열을 이야기하는 뿐입니다. # 39 의 철저한 explanation:* here&

Empty 무엇을 의미합니까?

무엇보다 우리는 빈 무엇인지에 대한 합의가 선행돼야 한다고 한다. Do you mean 필터링하도록:

  • 가 빈 문자열을 (&quot ";) * 1 만?
  1. 이 값을 엄격히 거짓값 ? ('$ 요소점 = false')
  2. 파우시 값을? (즉, 0, 0.0, ";;; 0&quot &quot &quot nulll, 어레이입니다 ()).
  3. PHP& '에 # 39 의 빈 ()' 기능을?

어떻게 값을 필터링합니다

  • 빈 문자열을 필터링하도록 미디어만을 *:
$filtered = array_diff($originalArray, array(""));
        • 거짓값 대해서만 엄격히 필터링합니다 값뿐만 콜백하는 * 함수를 사용해야 합니다.
$filtered = array_diff($originalArray, 'myCallback');
function myCallback($var) {
    return $var === false;
}

이 역시 유용하게 사용할 수 있는 모든 조합으로의 콜백하는 운영까지도 필터링하려면 아웃해야 falsey&quot "; 그러나 일부 값뿐만. (예를 들어 필터링합니다 'null' 와 '거짓' 등 모든 확인란만 '0'):

$filtered = array_filter($originalArray, 'myCallback');
function myCallback($var) {
    return ($var === 0 || $var === '0');
}

세 번째와 네 번째 경우 (현재 목적에 맞는 at last) 에 있는 모든 avamer 기본값입니다 사용해야 합니다.

$filtered = array_filter($originalArray);
해설 (1)

난 이미 이를 유지하기 위해 어레이에서는 (string) 의 값이 0

$url = array_filter($data, function ($value) {
  return (!empty($value) || $value === 0 || $value==='0');
});
해설 (0)
$a = array(1, '', '', '', 2, '', 3, 4);
$b = array_values(array_filter($a));

print_r($b)
해설 (1)
function trim_array($Array)
{
    foreach ($Array as $value) {
        if(trim($value) === '') {
            $index = array_search($value, $Array);
            unset($Array[$index]);
        }
    }
    return $Array;
}
해설 (0)
$out_array = array_filter($input_array, function($item) 
{ 
    return !empty($item['key_of_array_to_check_whether_it_is_empty']); 
}
);
해설 (0)

위한 다차원 배열

$data = array_map('array_filter', $data);
$data = array_filter($data);
해설 (0)

난 다음 스크립트를 사용하여 빈 요소를 제거하시겠습니까 배열에서


for ($i=0; $i
해설 (0)

그냥 기여할 수 있는 대안을 룹스트라우소 주소지정에 갭스 키.

이 작전은 완료하십시오 때 내가 하고 싶은 내 경우에는 렉시한테서 순차인지 어레이입니다 키 (홀수 개의 아니라, 이는 내가 쳐다보고 있었다. 설정 해 볼 수 있는 코드를 홀수입니다 다는일은 아니라 미래 친화적 인 키가 깨지기 쉬운 것 같다.)

내가 찾던 좀 더 다음과 같습니다. http://gotofritz.net/blog/howto/removing-empty-array-elements-php/

말하자면, array_filter 및 array_slice 높여줍니까 트릭.

' = $ ($ 예), array_filter (예: 예를 들어 'array_slice = $ ($ acrobatconnectcentral. 0);

하지만 전혀 모르고 있는 효율성을 또는 벤치마크 작동하잖아.

해설 (1)
foreach($arr as $key => $val){
   if (empty($val)) unset($arr[$key];
}
해설 (1)
$my = ("0"=>" ","1"=>"5","2"=>"6","3"=>" ");   

foreach ($my as $key => $value) {
    if (is_null($value)) unset($my[$key]);
}

foreach ($my as $key => $value) {
    echo   $key . ':' . $value . '<br>';
} 

output

&gt. 1:5 &gt. &gt. 2 6

해설 (0)