Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Начать массив с элемента [1]
 
 автор: Freddie_X   (22.05.2006 в 20:05)   письмо автору
 
 

Как мне сдеать так, чтобы массив начинался не с [0], а с [1] ?

   
 
 автор: Boss   (22.05.2006 в 20:07)   письмо автору
 
   для: Freddie_X   (22.05.2006 в 20:05)
 

http://www.softtime.ru/info/articlephp.php?id_article=68


<?php 
  $arr 
= array(=> "PHP"
               
=> "MySQL"
               
=> "Apache"); 
?> 

или

<?php 
  $arr
[1] = "PHP"
  
$arr[2] = "MySQL"
  
$arr[3] = "Apache"
?> 

   
 
 автор: Саня   (22.05.2006 в 20:39)   письмо автору
 
   для: Freddie_X   (22.05.2006 в 20:05)
 

Можно задать первый элемент $array[1], а все последующие $array[] будут пронумерованы как обычно:
<?php
$array
[1] = mt_rand();
for ( 
$i 0$i 10$i++ ) {
  
$array[] = mt_rand();
}
print 
"<pre>";
?>

Выведет примерно такое:
Array
(
    [1] => 924320968
    [2] => 1761860723
    [3] => 1569993965
    [4] => 206184145
    [5] => 1681593651
    [6] => 243313596
    [7] => 1871561927
    [8] => 1014004753
    [9] => 459280577
    [10] => 1044591167
    [11] => 2006838392
)

   
 
 автор: Freddie_X   (22.05.2006 в 21:53)   письмо автору
 
   для: Саня   (22.05.2006 в 20:39)
 

А если я массив создаю из файла, т.е. $file = file("text.txt"); ?
Т.е. первый элемент может иметь любое значение! Как тогда быть?

   
 
 автор: cheops   (22.05.2006 в 22:28)   письмо автору
 
   для: Freddie_X   (22.05.2006 в 21:53)
 

А почему 0 не нравится? Исправить индексацию в уже существующем массиве вероятно можно, но это лишняя трата памяти и времени - насколько жёстко требуется начать массив с 1?

   
 
 автор: Саня   (22.05.2006 в 22:30)   письмо автору
 
   для: Freddie_X   (22.05.2006 в 21:53)
 

Т.е. первый элемент может иметь любое значение!
Вообще-то первый элемент ($array[0]) содержит первую строку в файле.
<?php
$file 
file("text.txt");
$new[1] = $file[0];
for ( 
$i 1$i count($file); $new[] = $file[$i], $i++ );
print 
"<pre>";
print_r($new);
?>

   
 
 автор: Freddie_X   (22.05.2006 в 22:45)   письмо автору
 
   для: Саня   (22.05.2006 в 22:30)
 

насколько жёстко требуется начать массив с 1?
Я делаю постраничную навигацию. Та что показана на вашем сайте, сложновата. Вот и хочу сделать сам.

   
 
 автор: ec_stasis   (22.05.2006 в 23:34)   письмо автору
 
   для: Freddie_X   (22.05.2006 в 22:45)
 


если не получается прибавить 1 к индексам массива, то можно воспользоваться ф-ией
<?
$file 
file("text.txt"); 
array_unshift($file'');
?>

все элементы сместятся на +1

   
 
 автор: isset   (23.05.2006 в 01:50)   письмо автору
 
   для: Freddie_X   (22.05.2006 в 22:45)
 

а почему бы при выводе не сделать +1?

   
 
 автор: Freddie_X   (23.05.2006 в 08:32)   письмо автору
 
   для: isset   (23.05.2006 в 01:50)
 

Я сделал вот так:

<?php for ( $i 1$i count($file); $i++ ); { $file[$i] = $file[$i-1]; } ?>

И работает! :)

   
 
 автор: Shorr Kan   (23.05.2006 в 09:09)   письмо автору
 
   для: Freddie_X   (23.05.2006 в 08:32)
 

<? 
$array
[0]="";$array=array_merge($array,file('file.txt'));
print 
"<pre>";
print_r($array);
?>


А что касается постраничной навигации - разумнее будет при выводе каждого элемента - добавлять единичку к ключу. Хотя бы потому, что при выборе странички - вам не придется эту единичку вычитать...

   
 
 автор: Trianon   (23.05.2006 в 09:52)   письмо автору
 
   для: Freddie_X   (23.05.2006 в 08:32)
 

>И работает! :)

Ой, сомнительно!
Точка с запятой после заголовка цикла приводит к тому, что в самом цикле ничего не выполняется.
Но даже если её убрать, порядок присвоения таков, что массив окажется заполненным одной единственной строкой - самой первой.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования