|
|
|
| подскажите пожста! есть массив:
<?
$array = array (
name1 => value1,
name2 => value2,
.......);
?>
|
как добавить в этот массив еще значения не применяя конструкции:
<?
$array["name3"] = value3;
$array["name4"] = value4;
# а написав так:
$array = array (
name3 => value3,
name4 => value4);
# только в данном случае массив перепишеться, а как написать чтоб значения просто добавились?
?>
|
| |
|
|
|
|
|
|
|
для: localGhost
(18.04.2005 в 06:22)
| |
<?
$array[] = "новое значение";
$array[] = "еще одно";
$array[] = "и еще одно";
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(18.04.2005 в 08:53)
| | хм такой вариант не канает потому что получиться в результате следующее:
array (
0 => новое значение
1 => еще одно
2 => и еще одно
)
|
мне нужно что бы можно было написать:
$array = array (
name1 => новое значение
name2 => еще одно
name3 => и еще одно
)
|
но чтобы в массив значения были добавлены а не заменены.....
т.е. пример:
array (
name1 => value1,
name2 => value2,
name3 => value3,
name4 => value4
)
# заход первый:
$array = array (
name1 => value1,
name2 => value2,
)
# заход второй,
# вариант первый:
$array["name3"] = value3;
$array["name4"] = value4;
# вариант второй:
$array = array (
name3 => value3,
name4 => value4
);
|
вот короче надо чтоб во втором так сказать заходе в массив добавить значения вторым вариаетом, можно и первым но в моем случае значений достаточно много и не очень красиво выглядит - нагроможденно... вот хотелось чтоб это выглядело как во втором варианте, но как правильно написать никак немогу понять. надеюсь понятно объяснил))) | |
|
|
|
|
|
|
|
для: localGhost
(18.04.2005 в 09:05)
| | Честно говоря, не очень понял…
Вы говорите, что значения нужно добавить.
Вот этот вариант как раз и добавляет значения
$array[] = "новое значение";
|
<?
// Инициализируем массив
$array = array (
name1 => value1,
name2 => value2,
name3 => value3,
name4 => value4
);
// Добавим значение к существующему массиву
$array[] = "еще одно значение";
//Выводим на экран
echo "<pre>";
print_r($array);
echo "</pre>";
?>
|
На экране видим
Array
(
[name1] => value1
[name2] => value2
[name3] => value3
[name4] => value4
[0] => еще одно значение
)
|
Т.е. появилось новое значение.
Или же нужно не добавлять, а изменять? Тогда нужно обращаться по имени элемента.
$array["name2"] = "еще одно значение";
$array["name3"] = "еще одно значение";
$array["name4"] = "еще одно значение";
|
Этот же вариант сработает если нужно добавлять в массив с именами индексов. Да, конечно, если элементы с такими индексами (name2, name3, name4) существуют, то они будут заменены, а не добавлены. Но ведь так и должно быть. Ведь не может же у вас быть двух элементов с одинаковыми индексами.
PS: По моему, мы запутались:) | |
|
|
|
|
|
|
|
для: localGhost
(18.04.2005 в 09:05)
| | > в этот массив еще значения не применяя конструкции
Или же задача в том, чтобы обязательно применить конструкцию
Хм… а почему такое условие? Почему нельзя воспользоваться стандартными методами?
> значений достаточно много и не очень красиво выглядит - нагроможденно
Но ведь даже количество символов почти одинаковое в этих двух способах инициализации массивов. Почему первый для вас менее удобен, чем второй?
Вы хотите унифицировать код? Тогда лучше совсем не использовать вариант с конструкцией
А всегда пользоваться
$array["nameN"] = " значение";
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(18.04.2005 в 09:43)
| | просто хотелось разобраться...
и удобней смотриться.... не так громоздко...
>Array
>(
> [name1] => value1
> [name2] => value2
> [name3] => value3
> [name4] => value4
> [0] => еще одно значение
>)
первое значение в массиве... или как это назвать.. млин запутался... вобщем имя nameN будет указываться, поэтому недопутимо автоматическое заполнение в виде:
$array[] = ... | |
|
|
|
|
|
|
|
для: localGhost
(18.04.2005 в 09:58)
| | Так а вы применяйте не $array[] = ..., а как Дизайнер пишет $array[name5] = ... А ключ name5 вычисляйте по количеству элмементов в массиве, которое можно узнать при помощи функции count($array). | |
|
|
|
|
|
|
|
для: localGhost
(18.04.2005 в 09:05)
| | А вы при первом заходе создавайте массив
<?php
$array = array (
name1 => value1,
name2 => value2,
);
?>
|
а при втором
<?php
$array = array (
name3 => value3,
name4 => value4
);
?>
|
Если в силу каких то причин при втором заходе элмементы первого массива остаются, их всегда можно уничтожить при помощи функции unset
| |
|
|
|