programing

어레이에 여러 요소가 있는지 확인하는 더 좋은 방법은 무엇입니까?

goodjava 2022. 10. 21. 21:25

어레이에 여러 요소가 있는지 확인하는 더 좋은 방법은 무엇입니까?

배열에 여러 요소가 있는지 확인만 하면 됩니다.이렇게 하려고 합니다.

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

또 다른 전통적인 방법은

if (sizeof($arr)>1)

둘 중 어떤 게 더 나아요?이러한 경우, 두 가지 대체 방법을 어떻게 판단해야 합니까?어떤 것이 더 나은지 측정할 수 있는 성능 점검 측정기가 있습니까?

이것을 사용하다

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

아니면

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

sizeof()의 에일리어스입니다.count(), 같은 기능을 합니다.

편집: 질문의 두 번째 부분에 대한 답변:질문의 두 줄의 코드는 대체 방법이 아니라 서로 다른 기능을 수행합니다.첫 번째는 값이 다음 값인지 여부를 확인합니다.$arr['1']이 설정되어 있는 동안 두 번째는 배열 내의 요소 수를 반환합니다.

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

$arr이 정말 배열인지 확인하려고요.

sizeof의 에일리어스입니다.countcount를 사용하는 이유는 다음과 같습니다.

  1. 입력할 문자 수 1자 감소
  2. size of은 메모리 측면에서 어레이의 크기를 의미할 수 있습니다.너무 기술적입니다.
if (count($arr) >= 2)
{
  // array has at least 2 elements
}

sizeof()의 에일리어스입니다.count()둘 다 비어레이에서도 동작하지만 인수가 배열 또는 객체일 경우에만 1보다 큰 값을 반환하므로 이 경우 매우 안전합니다.

분명히 사용하고 있다count($arr) > 1(sizeof에 대한 가명일 뿐입니다.count)가 최적의 솔루션입니다.어레이의 구조에 따라서는, 많은 요소가 존재할 수 있지만, 실제로는 없습니다.$array['1']요소.

사용하다count()

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

이 페이지는 http://phparraylength.com/ 에서 꽤 잘 설명하고 있습니다.

저는 더 좋아요.count()대신 기능하다sizeOf()~하듯이sizeOf()의 에일리어스일 뿐입니다.count()그리고 다른 많은 언어에서도 같은 것을 의미하지 않습니다.많은 프로그래머들은sizeof()할당된 메모리 양을 반환합니다.

empty()가 size of()보다 낫다.

어레이에 대량의 데이터가 포함되어 있는 경우.어레이의 크기를 세는 데 시간이 더 걸립니다.그러나 비어 있는 것을 확인하는 것은 항상 쉽습니다.

//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';

isset()은 변수가 설정되어 있는지 여부만 확인합니다.크기나 어레이의 내용과는 관계가 없습니다.

$arr은 배열이고 이것이 당신이 찾고 있는 것입니다.

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

첫 번째 방법if (isset($arr['1']))는 관련지어져 있는 어레이에서는 동작하지 않습니다.

예를 들어, 다음 코드는 "Nop, not more one"을 표시합니다.

$arr = array(
    'a' => 'apple',
    'b' => 'banana',
);

if (isset($arr['1'])) {
    echo "Yup, more than one.";
} else {
    echo "Nope, not more than one.";
}

Swift 4/5에서는 어레이 루핑과 디폴트 입력이 적절히 이루어집니다.

   for index in 0..<3
    {
        let isIndexValid = allObjects.indices.contains(index)
        var yourObject:Class = Class()
        if isIndexValid { yourObject = allObjects[index]}
        resultArray.append(yourObject)
    }

언급URL : https://stackoverflow.com/questions/10024910/which-is-a-better-way-to-check-if-an-array-has-more-than-one-element