[php] 배열에 둘 이상의 요소가 있는지 확인하는 더 좋은 방법은 무엇입니까?

배열에 둘 이상의 요소가 있는지 확인해야합니다. 나는 이런 식으로하려고합니다.

if (isset($arr['1']))

다른 전통적인 방법은

if (sizeof($arr)>1)

둘 중 어느 것이 더 낫습니까? 그러한 상황에서 두 가지 대체 방법을 어떻게 판단해야합니까? 어느 쪽이 더 나은지 측정 할 수있는 성능 점검 미터가 있습니까?



답변

이것을 사용하십시오

if (sizeof($arr) > 1) {
     ....
}

또는

if (count($arr) > 1) {
     ....
}

sizeof()에 대한 별칭이며 count()동일한 방식으로 작동합니다.

편집 :
질문의 두 번째 부분에 대한 답변 : 질문의 두 줄은 대체 방법이 아니며 다른 기능을 수행합니다. 첫 번째는 at 값 $arr['1']이 설정되어 있는지 확인 하고 두 번째는 배열의 요소 수를 반환합니다.


답변

if(is_array($arr) && count($arr) > 1)

$ arr이 실제로 배열인지 확인하십시오.

sizeof의 별칭이며 countcount 때문에 다음을 선호합니다.

  1. 1 자 이하로 입력
  2. 한 눈에 sizeof는 메모리 측면에서 배열의 크기를 의미 할 수도 있습니다.

답변

if (count($arr) >= 2)
{
  // array has at least 2 elements
}

sizeof()의 별칭입니다 count(). 둘 다 배열이 아닌 배열에서도 작동하지만 인수가 배열 또는 Countable객체경우 1보다 큰 값만 반환 하므로 매우 안전합니다.


답변

분명히 count($arr) > 1(을 sizeof위한 별칭 일뿐 count)을 사용하는 것이 가장 좋은 솔루션입니다. 배열의 구조에 따라 많은 요소가 있지만 요소는 없을 수 있습니다 $array['1'].


답변

사용하다 count()

if (count($my_array) > 1) {
// do
}

이 페이지는 그것을 잘 설명합니다 http://phparraylength.com/


답변

내가 선호하는 count()대신 기능 sizeOf()으로 sizeOf()의 별칭입니다 count()및 기타 여러 언어로 같은 것을 의미하지 않는다. 많은 프로그래머 sizeof()는 할당 된 메모리 양을 반환 할 것으로 예상 합니다.


답변

배열을 확인하려면 empty ()가 sizeof ()보다 낫습니다.

배열에 많은 양의 데이터가 포함 된 경우 배열의 크기를 계산하는 데 더 많은 시간이 걸립니다. 그러나 비어있는 검사는 항상 쉽습니다.

//for empty
  if(!empty($array))
     echo 'Data exist';
  else
     echo 'No data';


 //for sizeof
 if(sizeof($array)>1)
      echo 'Data exist';
 else
    echo 'No data';