вопрос по PHP

G
На сайте с 03.07.2007
Offline
16
641

$tmp_array = array();

$old = array('aa', 'bb');

$new = array('aa1', 'bb1');

$con = str_replace($old, $new ,$con);

cachesave($cachid,$con);}}echo $con;

Вот так выведет значения корректно, но мне нужно с каждой переменной new , выводить до нее и после еще значения:

$tmp_array = array();

$old = array('aa', 'bb');

$new = array('aa1', 'bb1');

$con = str_replace($old, 'ss'. $new . 'ss' ,$con);

cachesave($cachid,$con);}}echo $con;

- В этом случае выводит мне ss, array , ss . Почему перестает отображаться значение $new, а выводит array??

2. Как мне установить игнор на регистр символов, т.е. не зависимо от регистра символов переменных new и old , заменялись на соответствующие по типу: если у $old стоит аа, скрипт находит значение Aa, то при выводе будет new значение Aa1 (хотя указано маленькими буквами аа1) , если находит АА, то выведет АА1 .. и т.п.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1

потому что $new это массив данных, о чём он Вам и сообщает, нужно выводить

$new[0] или $new[1]

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
G
На сайте с 03.07.2007
Offline
16
#2
LEOnidUKG:
потому что $new это массив данных, о чём он Вам и сообщает, нужно выводить
$new[0] или $new[1]

цифра я так понял указывает на порядковый номер значения... У меня очень много значений и выводить нужно без указания цифры, а в соответствии с порядковым номером массива $old ... т.е. каждый порядковый номер $old связан с аналогичным номером $new ... Вобщем мне нужно просто вставить перед и после каждого вывода значения $new тег "<span>", прописывать в каждое значение массива проблемматично. И как быть регистром (приходится писать по два-три значения в оба массива, маленькими буквами и начинающиеся с большой - вообще беда)?

Дизайнер, с пхп туго =)))

K
На сайте с 12.07.2006
Offline
295
Kpd
#3
goox:
цифра я так понял указывает на порядковый номер значения...

Программисты называют эту циферку "индексом массива", иногда "ключом массива".

Используйте функцию implode для объединения всех элементов массива в строку, примерно так

$con = str_replace($old, 'ss'. implode(" ", $new) . 'ss' ,$con);

В качестве первого параметра в функцию implode передается символ-разделитель, который будет выводиться между значениями массива (в примере это пробел, но может быть что угодно)

LX
На сайте с 11.06.2007
Offline
28
#4
goox:
цифра я так понял указывает на порядковый номер значения... У меня очень много значений и выводить нужно без указания цифры, а в соответствии с порядковым номером массива $old ... т.е. каждый порядковый номер $old связан с аналогичным номером $new

А в цикл?


for($i=0;$i<count($new);$i++){
$con[$i] = str_replace($old[$i], 'ss'.$new[$i] . 'ss' ,$con[$i]);
}
Ѣ-программисты пишут на Petrovich (http://2lx.ru/2009/05/yazyk-programmirovaniya-petrovich/) и Ook! (http://2lx.ru/2009/06/yazyk-programmirovaniya-ook/) Нечего кушать? Подои Зорьку (http://zorkabiz.ru/?zorka=1071)! Мууу...
K
На сайте с 12.07.2006
Offline
295
Kpd
#5

...........................

W
На сайте с 19.06.2006
Offline
142
#6
Le)(x:
А в цикл?

for($i=0;$i<count($new);$i++){
$con[$i] = str_replace($old[$i], 'ss'.$new[$i] . 'ss' ,$con[$i]);
}

Мде... Логику кто отменял?


$lim = sizeof($new); // sizeof быстрее count, курим маны
for($i=0;$i<$lim;$i++){ // т.к. размер массива не меняется - избавляемся от пересчета на каждой итерации
$con[$i] = str_replace($old[$i], 'ss'.$new[$i] . 'ss' ,$con[$i]);
}

А еще лучше, в циклах, где элементов менее 1000 использовать foreach

LX
На сайте с 11.06.2007
Offline
28
#7

wayly, век живи - век учись :)

Извиняюсь за оффтоп...

N
На сайте с 15.08.2007
Offline
5
#8

Не надо использовать циклы там, где можно без них обойтись :)


$old = array('aa', 'bb');
$new = array('aa1', 'bb1');

/**
* Создаём массив, каждый элемент которого - соответственный
* элемент массива $old, обработанный функцией my_convertor()
*/
$con = array_map('my_convertor', $old);

function my_convertor($c)
{
return 'ss' . $c . 'ss';
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий