Форум русскоязычного сообщества Ubuntu


Автор Тема: php, массивы, объясните дураку  (Прочитано 448 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
php, массивы, объясните дураку
« : 11 Май 2010, 11:15:29 »
есть файл file1:
4654    1245
0       1246
0       1247
13      1248

помещаю file1 в массив arr1
$file=fopen("file1", "r");
while(!feof($file))
{
$arr1[]=explode("\t", fgets($file));
}
распечатываю массив arr1, все нормально:
print_r($arr1);
Array ( [0] => Array ( [0] =>4654 [1] => 1245 ) [1] => Array ( [0] => 0 [1] => 1246 ) [2] => Array ( [0] => 0 [1] => 1247 ) [3] => Array ( [0] => 13 [1] => 1248 ))

есть массив arr2:
$arr2 = Array(
"1245" => "Сергей",
"1246" => "Алексей",
"1247" => "Владимир",
"1248" => "Игорь"
);

Вывожу на экран элемент массива arr2 при помощи массива arr1
print $arr2[$arr1[0][1]]
undefined index: 1245

Вывожу подставляя иденкс вручную
print $arr2["1245"] - Выводит - [i][b]Сергей[/b][/i]
$var1 = $arr1[0][1];
print $var1;
Выводит - 1245

print $arr2[$var1];
undefined index: 1245

что я делаю не так?
« Последнее редактирование: 11 Май 2010, 11:46:12 от kostrukov »
у меня можно спросить=)

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: php, массивы, объясните дураку
« Ответ #1 : 11 Май 2010, 11:23:56 »
print $arr2[strval($arr1[0][1])];
ArchLinux x86_64

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: php, массивы, объясните дураку
« Ответ #2 : 11 Май 2010, 11:28:37 »
все также - Undefined index: 1245
у меня можно спросить=)

Оффлайн DnSL48

  • Активист
  • *
  • Сообщений: 286
    • Просмотр профиля
Re: php, массивы, объясните дураку
« Ответ #3 : 11 Май 2010, 11:39:17 »
код определения arr2 в студию
ArchLinux x86_64

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: php, массивы, объясните дураку
« Ответ #4 : 11 Май 2010, 11:44:06 »
print $arr2[intval($arr1[0][1])];
вооот что нужно было, но это если индекс = число, а что если индексы будут типа: 00.0.000 ? тогда как

код определения arr2 в студию

$arr2 = Array(
"1245" => "Сергей",
"1246" => "Алексей",
"1247" => "Владимир",
"1248" => "Игорь"
);

print_r($arr2)
Array ( [1245] => Сергей [1246] => Алексей [1247] => Владимир [1248] => Игорь )
« Последнее редактирование: 11 Май 2010, 11:45:59 от kostrukov »
у меня можно спросить=)

Оффлайн Mam(O)n

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: php, массивы, объясните дураку
« Ответ #5 : 11 Май 2010, 11:50:35 »
Ты получаешь в качестве индекса стринг "12345\n". Стрипать надо переводы строк при чтении из файла с помощью trim, например...

Оффлайн kostryukov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
Re: php, массивы, объясните дураку
« Ответ #6 : 11 Май 2010, 13:04:05 »
точно) незаметил, спасибо
у меня можно спросить=)

 

Страница сгенерирована за 0.056 секунд. Запросов: 24.