PHP генератор массивов

#php #arrays

#php #массивы

Вопрос:

У меня есть некоторые значения в файле Excel, и я хочу, чтобы все они были элементами массива помните, что в файле также есть другие данные.

Я знаю один из способов — скопировать их один за другим и поместить в состояние инициализации массива

Примерный список, который является лишь частью целого списка

 Bay Area 
Greater Boston
Greater Chicago
Greater Dallas-Ft. Worth
Greater D.C.
Las Vegas
Greater Houston
Greater LA
Greater New York
Greater San Diego
Seattle
South Florida
  

Легко инициализировать массив значениями, когда в нем не так много элементов, таких как

 $array= array('Bay Area '=>'Bay Area ','Greater Boston'=>'Greater Boston',....) 
// and so on
  

Но у меня 70-80 элементов, инициализировать массив, подобный описанному выше, — очень утомительная задача.

Итак, ребята, есть ли какой-нибудь альтернативный или короткий путь для присвоения массиву списка значений?

Существует ли какой-либо инструмент для автоматического создания массива?

Ответ №1:

Если бы вы скопировали их в файл, где каждая строка была бы отдельной, вы могли бы прочитать файл на php следующим образом

 $myArray = file('myTextFile');

//sets the keys to the array equal to the values
$myArray = array_combine($myArray, $myArray); 
  

Вы могли бы экспортировать данные из Excel в CSV, затем прочитать файл в php следующим образом:

 $myArray = array();
if (($file = fopen("myTextFile", "r")) !== FALSE) {
    while (($data = fgetcsv($file)) !== FALSE) {
        foreach($data as $value) {
            $myArray[$value] = $value;
        }
    }
    fclose($handle);
}
  

Комментарии:

1. Обновлено для новой версии вопроса.

Ответ №2:

 $array = explode("n", file_get_contents('yourfile.txt'));
  

Для более сложных случаев загрузки CSV-файлов в PHP, возможно, используйте fgetcsv() или даже PHPExcelReader для XLS-файлов.

РЕДАКТИРОВАТЬ (после редактирования вопроса)

(Удалено мое плохое решение, поскольку файл ohmusama() array_combine () явно лучше)

Ответ №3:

Этот:

$string_var = "
Bay Area 
Большой Бостон
Большой Чикаго
Большой Даллас-Фут. Стоит 
";

$array_var = explode("n", $string_var);

Комментарии:

1. Извините, забыл упомянуть, мне нужно key=>value обновить вопрос о паре

Ответ №4:

возьмите notepad , откройте там файл Excel и выполните простой поиск и замените регулярным выражением. что-то вроде поиска «(.*) n» и замените на «‘(1)’,» (» вопросы не включены), это дало бы вам длинный список:

‘Bay Area’, ‘Greater Boston’, ‘Greater Chicago’

Это был бы самый быстрый способ создания массива с точки зрения времени выполнения php.

Ответ №5:

Я думаю, что это выглядит лучше:

 $a[] = "Bay Area";
$a[] = "Greater Boston";
$a[] = "Greater Chicago";
  

Для создания такого текстового файла используйте Excel (у меня нет Excel, но это выглядит немного):

 =concatenate(" $a[] = ",chr(34),A1,chr(34),";")
  

Затем экспортируйте только этот столбец.