#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),";")
Затем экспортируйте только этот столбец.