X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Добавление в массив, не используя его напрямую
Russ33
Russ33
Topic Starter сообщение 1.10.2015, 21:06; Ответить: Russ33
Сообщение #1


Здравствуйте, я не понимаю, как в версии php 5.5 добавлять что-то ещё в массив, не использую его напрямую?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 2.10.2015, 11:51; Ответить: yury_mw
Сообщение #2


Пример с пояснениями того что вам нужно – в студию.
Конкретно:
* в какой массив?
* что и в какое место массива добавлять?
* что значит "не используя его напрямую"?
 
А так вот вам простейший пример добавления в массив:

<?php
echo '<pre>';
$a=array(1=>1, 'w', array('It is', 'array', 'too'), 33); //исходный массив, 4 элемента, один из которых тоже массив
print_r ($a); //выводим массив на экран
$a[]=9; //добавляем элемент в конец
print_r ($a); //выводим массив на экран
//добавляем в 3й элемент массива (который тоже массив) 4 элемента в середину (с индекса 2)
array_splice($a[3], 2, 0, array('This', 'array', 'changed', 'now'));
print_r ($a); //выводим массив на экран
echo '</pre>';
?>

Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Russ33
Russ33
Topic Starter сообщение 4.10.2015, 0:24; Ответить: Russ33
Сообщение #3


Рассмотрим такой случай:
Есть массив
$array = ['яблоко', 'цифра'];

Вопрос, как добавить в содержимое массива пункт Земля, не используя это:
$array = ['яблоко', 'цифра'];
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 4.10.2015, 11:01; Ответить: ixman
Сообщение #4


Russ33,  

$array[] = 'Земля';

 

Не, не так?


Сообщение отредактировал Ixman - 4.10.2015, 11:07
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Russ33
Russ33
Topic Starter сообщение 4.10.2015, 13:36; Ответить: Russ33
Сообщение #5


Пробовал. Если так написать, то выдаётся фатальная ошибка.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 4.10.2015, 14:37; Ответить: ixman
Сообщение #6


Russ33, подробнее бы как и что делается. Ибо в примере 

(Russ33 @ 4.10.2015, 02:24) *
$array = ['яблоко', 'цифра'];
 

реализовано не правильно. Так делать нельзя
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 4.10.2015, 15:05; Ответить: yury_mw
Сообщение #7


(Russ33 @ 4.10.2015, 15:36) *
Пробовал. Если так написать, то выдаётся фатальная ошибка.
Вот такой код не выдает никаких ошибок:
<?php
header("Content-Type: text/html; charset=utf-8");
echo 'Версия PHP: ', PHP_VERSION;
echo '<pre>';
$array = ['яблоко', 'цифра'];
$array[] = 'Земля';
print_r ($array);
echo '</pre>';
?>
Результат его такой (для PHP 5.6.1):
Версия PHP: 5.6.1

Array
(
[0] => яблоко
[1] => цифра
[2] => Земля
)

@[member=Ixman],
начиная с PHP 5.4 возможно использовать короткий синтаксис определения массивов, который заменяет языковую конструкцию array() на [].
@[member=Russ33],@[member=Ixman],
примерный результат можно посмотреть вот в этой песочнице (вывод только PHP скрипта без отработки HTML-тегов)
https://eval.in/444480

Сообщение отредактировал yury - 4.10.2015, 15:06
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ixman
ixman
сообщение 4.10.2015, 15:13; Ответить: ixman
Сообщение #8


yury_mw, спасибо не знал что так можно 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Russ33
Russ33
Topic Starter сообщение 4.10.2015, 21:13; Ответить: Russ33
Сообщение #9


(yury @ 4.10.2015, 17:05) *
$array = ['яблоко', 'цифра']; $array[] = 'Земля'; print_r ($array);

Если я просто напишу вот так:

<?
$array = ['22', '55'];
$array[] = '77';
echo $array;
?>

Сработает?
Вдобавок, а что если я array вытащил в какую-нибудь переменную, то вот это сработает (на вашем примере)?

$array = ['яблоко', 'цифра'];
foreach($array as $v){
  print_r ($v);
}
$v[] = 'Земля';
 

Сообщение отредактировал Russ33 - 4.10.2015, 21:17
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yury_mw
yury_mw
сообщение 4.10.2015, 22:34; Ответить: yury_mw
Сообщение #10


(Russ33 @ 4.10.2015, 23:13) *
Если я просто напишу вот так:
<?
$array = ['22', '55'];
$array[] = '77';
echo $array;
?>
Сработает?
Если вы хотите добавить в массив еще 1 элемент '77' — сработает.

Команда же echo $array; выведет на экран слово "Array", т.к. не умеет того, что умеет print_r(). А умеет print_r() выводить на экран пригодную для чтения человеком информацию о переменной. Если в качестве аргумента этой функции дана строка, целое или вещественное число, печатается его значение. А если задан массив, значения массива будут представлены в формате с показом ключей и элементов.
Т.е. print_r($array) выведет на экран:
Array
(
[0] => 22
[1] => 55
[2] => 77
)
(Russ33 @ 4.10.2015, 23:13) *
Вдобавок, а что если я array вытащил в какую-нибудь переменную, то вот это сработает (на вашем примере)?
 
$array = ['яблоко', 'цифра'];
foreach($array as $v){
print_r ($v);
}
$v[] = 'Земля';
"Вот это" не сработает.
Потому что у вас конструкция foreach в переменную $v будет помещать последовательно элементы массива $array, которые являются строками. Т.е. переменная $v у вас имеет тип "строка" и после выполнения цикла foreach в ней будет лежать значение 'цифра'. А со строковыми переменными так ($v[] = 'Земля';) нельзя обращаться — это будет расценено как фатальная ошибка: "Fatal error: [] operator not supported for strings".

Правильно так:
$v = 'Земля';
В результате переменная $v примет значение 'Земля'
Или вот так тоже правильно:
$v = $array;
$v[] = 'Земля';
В результате в переменную $v будет помещена копия массива $array из двух элементов 'яблоко' и 'цифра', а затем в массив $v будет добавлен третий элемент 'Земля'.

Сообщение отредактировал yury - 4.10.2015, 23:05
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыТы умеешь лить траф с FB? Мы монетизируем его через Телеграм на ИНДИИ.
0 Sirbet 491 14.2.2023, 21:39
автор: Sirbet
Открытая тема (нет новых ответов) Куда напрямую лить Кликандер и Попандер трафик?
9 Boymaster 3521 7.9.2022, 9:35
автор: MKOLL
Открытая тема (нет новых ответов) Ищу прогонщика с возможностью выборки Domain Rating (DR) по его базе.
0 regem 4546 25.5.2020, 3:12
автор: regem
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыДобавление RSS-ленты на новостные агрегаторы и блоги
4 agency 4808 14.5.2020, 15:53
автор: agency
Открытая тема (нет новых ответов) Нужен сайт + услуги по его продвижению
Ищу специалистов (грамотных)
11 Zoya83 4534 13.4.2020, 20:15
автор: aleks17101984


 



RSS Текстовая версия Сейчас: 19.3.2024, 9:01
Дизайн