Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить значение элемента массива, Не могу получить значение элемента по 
:(
    Опции темы
Fatal
Дата 10.12.2006, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.3.2005

Репутация: нет
Всего: нет



есть такой код
Код

$file_block = file("orders/block.txt");//чтение из файла 
//echo count($file_block),"<br>";
  if(!$file_block)
      {
        echo("Ошибка открытия файла");
      }
  else
      {

for($i=0; $i < count($file_block)-1; $i++)//перебор записей в файле
            {
              $data_block = explode(";", $file_block[$i]);
              $L_block[$data_block[4]] = $data_block[0].";".$data_block[1];
                     }

echo $data_block[4]; //выводит 3
echo $L_block[3]; // ничего не выводит
echo $L_block[$data_block[4]]; // выводит элемент массива с индексом 3

foreach($L_block as $index => $val)
                   {
                      echo("$index -> $val <br>");
                   }
//выводит содержимое массива

подскажите пожалуйста, как получить значение элемента в строке 17


Это сообщение отредактировал(а) Fatal - 10.12.2006, 20:43
PM MAIL   Вверх
Vaulter
Дата 10.12.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



так а что в файле
orders/block.txt


--------------------
PM MAIL WWW ICQ   Вверх
Fatal
Дата 10.12.2006, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.3.2005

Репутация: нет
Всего: нет



Файл содержит строки

stat_block.php;Статистика;1;1;3
mini_news_block.php;В одну строку;3;1;2
frend_block.php;Партнеры;3;1;4
nnnew_block.php;Совсем новый;3;1;3
Название файла;заглавие;1-слева 2-центр 3-справа;0-скрыть 1-показать;ХХ - порядковий номер показа;
PM MAIL   Вверх
szz
Дата 10.12.2006, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Попробуй <?echo '['.$data_block[4].']'?> пробелов случайно нету?
И еще попробуй перед 
echo $data_block[4]; //выводит 3
написать
$data_block[4] = intval(trim($data_block[4]));


--------------------
PM   Вверх
Fatal
Дата 10.12.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.3.2005

Репутация: нет
Всего: нет



Действительно, я совершенно выпустил из виду, что индексом массива является значение последнего элемента строки, а за ним идет знак переноса, быстрее всего он и портит нервы  smile но в этой ситуации наверное будет целесообразнее переписать строку 13 
Код

$L_block[intval(trim($data_block[4]))] = $data_block[0].";".$data_block[1];

тогда не будед заморочек в дальнейшем, индекс будет представлен в целочисленном виде и дальнейшее его использование не будет вызывать проблем.

Попробую, напишу, что получилось.
PM MAIL   Вверх
Vaulter
Дата 10.12.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



сделай (а может и возьми готовую) функцию чтения из csv файла


--------------------
PM MAIL WWW ICQ   Вверх
Fatal
Дата 10.12.2006, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.3.2005

Репутация: нет
Всего: нет



fgetcsv (file, length, delim) требует указания длины считываемой стороки, мне это не совсем подходит
PM MAIL   Вверх
Fatal
Дата 11.12.2006, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.3.2005

Репутация: нет
Всего: нет



Так и есть, в конце строки считывался символ переноса, после преобразования к целому числу проблема ушла, можно обращаться к элементам массива по индеску. Спасибо szz за подсказку.
PM MAIL   Вверх
Vaulter
Дата 11.12.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



что мешает писАть так:
Код

$fp = fopen('file.csv','r');
$arr = fgetcsv($fp,0,';');
fclose($fp);

??? 


--------------------
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1088 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.