array_item[] = $file что это делает?

Я следил за учебным пособием по readdir(), is_dir() и т. д., связанному с настройкой небольшой галереи изображений на основе папок и файлов на моем FTP. Мне было интересно, что такое $directorys[] = $file; часть делает конкретно?

while( $file= readdir( $dir_handle ) )      
{
        if( is_dir( $file ) ){              
            $directorys[] = $file;          
        }else{                              
            $files[] = $file;               
        }
}

person crmepham    schedule 09.01.2012    source источник


Ответы (5)


Он помещает элемент в массив вместо array_push, он будет помещать в массив только один элемент.

Использование array_push и $array[] = $item работает одинаково, но использование array_push не идеально, поскольку оно подходит для отправки нескольких элементов в массив.

Пример:

Array (
)

После этого $array[] = 'This works!'; или array_push($array, 'This works!') это будет выглядеть так:

Array (
   [0] => This works!
)

Также вы можете вставлять массивы в массив, например:

$array[] = array('item', 'item2');

Array (
   [0] => Array (
             [0] => item
             [1] => item2
          )
)
person MacMac    schedule 09.01.2012
comment
Спасибо, это очень помогло, и спасибо за другие ответы. - person crmepham; 10.01.2012

$directory - это массив.

Код

$directory[] = $file

добавляет $file в конец массива $directory. Это то же самое, что

array_push($directory, $file).

Дополнительная информация на array_push на phpdocs

person usoban    schedule 09.01.2012
comment
Итак, ваш код читает список файлов/папок и сортирует их в два массива: $directorys и $files - person MrGlass; 10.01.2012

$file будет содержать имя отсканированного элемента. В этом случае использование is_dir($file) позволяет вам проверить, является ли $file в текущем каталоге каталогом или нет.

Затем с помощью стандартного оператора добавления массива [] имя $файла или имя каталога добавляется в массив $files/$directorys...

person Mathieu Dumoulin    schedule 09.01.2012

Он добавляет каталог в массив directory :)

    if( is_dir( $file ) ){              
        $directorys[] = $file; // current item is a directory so add it to the list of directories       
    }else{                              
        $files[] = $file; // current item is a file so add it to the list of files
    }

Однако, если вы используете PHP 5, я действительно рекомендую использовать DirectoryIterator.

Кстати, называть это $file действительно плохо, так как это не всегда файл.

person PeeHaa    schedule 09.01.2012

Он создает новый элемент массива в конце массива и присваивает ему значение.

person Quentin    schedule 09.01.2012