Как определить, есть ли в массиве какие-либо элементы или нет?

Как узнать, есть ли в массиве один или несколько элементов?

Мне нужно выполнить блок кода, где размер массива больше нуля.

if ($result > 0) {
    // Here is the code body which I want to execute
} 
else {
    // Here is some other code
}

Ответ 1

Вы можете использовать PHP-функции count() или sizeof():

if (sizeof($result) > 0) {
    echo "array size is greater than zero";
}
else {
    echo "array size is zero";
}

Или вы можете использовать:

if (count($result) > 0) {
    echo "array size is greater than zero";
}
else {
    echo "array size is zero";
}

Ответ 2

count - count все элементы в массиве, или что-то в объекте

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

Подсчитывает все элементы в массиве или что-то в объекте.

Пример:

<?php
    $a[0] = 1;
    $a[1] = 3;
    $a[2] = 5;
    $result = count($a);
    // $result == 3

В вашем случае это как:

if (count($array) > 0)
{
    // Execute some block of code here
}

Ответ 3

Вы можете избежать извлечения и проверки длины, используя простой foreach:

foreach($result as $key=>$value) {
    echo $value;
}

Ответ 4

Если вы хотите только проверить, не является ли массив не пустым, вы должны использовать empty() - это намного быстрее, чем count(), и это также более читабельно:

if (!empty($result)) {
    // ...
} 
else {
    // ...
}

Ответ 5

@Sajid Mehmood в PHP у нас есть count() для подсчета длины массива, когда count() возвращает 0, что означает, что массив пуст

Давайте возьмем пример для вашего понимания:

<?php
    $arr1 = array(1); // With one value which will give 1 count
    $arr2 = array();  // With no value which will give 0 count

    // Now I want that the array which has greater than 0 count should print other wise not so

    if (count($arr1)) {
        print_r($arr1);
    }
    else {
        echo "Sorry, array1 has 0 count";
    }

    if (count($arr2)) {
        print_r($arr2);
    }
    else {
        echo "Sorry, array2 has 0 count";
    }

Ответ 6

Для тех, кто начинает с массива в PHP, это выглядит так: больше информации здесь

//Array
$result = array(1,2,3,4);

//Count all the elements of an array or something of an object
if (count($result) > 0) {
    print_r($result);
} 

// Or 
// Determines if a variable is empty
if (!empty($result)) {
    print_r($result);
}

// Or 
// sizeof - Alias of count ()
if (sizeof($result)) {
    print_r($result);
} 

Ответ 7

Профессиональный совет:

Если вы уверены, что:

  1. переменная существует (isset) И
  2. тип переменной - массив (is_array)... может быть верным для всех is_iterables, но я не исследовал это расширение области вопроса.

Тогда вам не нужно вызывать какие-либо функции. Массив с одним или несколькими элементами имеет логическое значение true. Массив без элементов имеет логическое значение false.

Код: (Демонстрация)

var_export((bool)[]);
echo "\n";
var_export((bool)['not empty']);
echo "\n";
var_export((bool)[0]);
echo "\n";
var_export((bool)[null]);
echo "\n";
var_export((bool)[false]);
echo "\n";

$noElements = [];
if ($noElements) {
    echo 'not empty';
} else {
    echo 'empty';
}

Выход:

false
true
true
true
true
empty    

Ответ 8

<pre>
$ii = 1;
$arry_count = count($args);
foreach ( $args as $post)
{
    if( $ii == $arry_count )
    {
        $last = 'blog_last_item';
    }
    echo $last;
    $ii++; 
}
</pre>