|
|
|
| Как мне сдеать так, чтобы массив начинался не с [0], а с [1] ? | |
|
|
|
|
|
|
|
для: Freddie_X
(22.05.2006 в 20:05)
| | http://www.softtime.ru/info/articlephp.php?id_article=68
<?php
$arr = array(1 => "PHP",
2 => "MySQL",
3 => "Apache");
?>
или
<?php
$arr[1] = "PHP";
$arr[2] = "MySQL";
$arr[3] = "Apache";
?>
|
| |
|
|
|
|
|
|
|
для: 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
)
|
| |
|
|
|
|
|
|
|
для: Саня
(22.05.2006 в 20:39)
| | А если я массив создаю из файла, т.е. $file = file("text.txt"); ?
Т.е. первый элемент может иметь любое значение! Как тогда быть? | |
|
|
|
|
|
|
|
для: Freddie_X
(22.05.2006 в 21:53)
| | А почему 0 не нравится? Исправить индексацию в уже существующем массиве вероятно можно, но это лишняя трата памяти и времени - насколько жёстко требуется начать массив с 1? | |
|
|
|
|
|
|
|
для: 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);
?>
|
| |
|
|
|
|
|
|
|
для: Саня
(22.05.2006 в 22:30)
| | насколько жёстко требуется начать массив с 1?
Я делаю постраничную навигацию. Та что показана на вашем сайте, сложновата. Вот и хочу сделать сам. | |
|
|
|
|
|
|
|
для: Freddie_X
(22.05.2006 в 22:45)
| |
если не получается прибавить 1 к индексам массива, то можно воспользоваться ф-ией
<?
$file = file("text.txt");
array_unshift($file, '');
?>
|
все элементы сместятся на +1 | |
|
|
|
|
|
|
|
для: Freddie_X
(22.05.2006 в 22:45)
| | а почему бы при выводе не сделать +1? | |
|
|
|
|
|
|
|
для: isset
(23.05.2006 в 01:50)
| | Я сделал вот так:
<?php for ( $i = 1; $i < count($file); $i++ ); { $file[$i] = $file[$i-1]; } ?>
|
И работает! :) | |
|
|
|
|
|
|
|
для: Freddie_X
(23.05.2006 в 08:32)
| |
<?
$array[0]="";$array=array_merge($array,file('file.txt'));
print "<pre>";
print_r($array);
?>
|
А что касается постраничной навигации - разумнее будет при выводе каждого элемента - добавлять единичку к ключу. Хотя бы потому, что при выборе странички - вам не придется эту единичку вычитать... | |
|
|
|
|
|
|
|
для: Freddie_X
(23.05.2006 в 08:32)
| | >И работает! :)
Ой, сомнительно!
Точка с запятой после заголовка цикла приводит к тому, что в самом цикле ничего не выполняется.
Но даже если её убрать, порядок присвоения таков, что массив окажется заполненным одной единственной строкой - самой первой. | |
|
|
|