Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 13.06.2019, 18:59   #1
Академик
 
Регистрация: 28.06.2008
Сообщений: 6,940
Репутация: 390201

По умолчанию Как провернуть такое с массивом?

Есть такой массив массивов
Цитата:
array(4) {
[0]=>
string(4) "1260"
[1]=>
string(4) "1281"
[2]=>
string(4) "1399"
[3]=>
string(4) "1442"
}
array(3) {
[0]=>
string(3) "199"
[1]=>
string(3) "491"
[2]=>
string(3) "666"
}
Порядок и группировка элементов в нем важна.
Вот что мне нужно.
1. Добавить к каждой цифре ссылку, чтобы получилось так
Цитата:
array(3) {
[0]=>
string(3) "/index.php?option=com_content&task=view&id=199"
[1]=>
string(3) "/index.php?option=com_content&task=view&id=491"
[2]=>
string(3) "/index.php?option=com_content&task=view&id=666"
}
как это сделать не разрушая сгруппированности я не знаю?

---------- Добавлено 13.06.2019 в 19:34 ----------

Все сделал......
Dram вне форума   Ответить с цитированием

Реклама
Старый 13.06.2019, 20:06   #2
fliger
Кандидат наук
 
Аватар для fliger
 
Регистрация: 17.09.2015
Сообщений: 406
Репутация: 14885

По умолчанию Re: Как провернуть такое с массивом?

Изучайте: _https://php.net/manual/ru/language.types.array.php
fliger вне форума   Ответить с цитированием
Старый 14.06.2019, 02:00   #3
Grac
Студент
 
Регистрация: 24.05.2019
Сообщений: 37
Репутация: -20782

По умолчанию Re: Как провернуть такое с массивом?

Лучше спросить на каком-то программистском форуме.
__________________
а++
Grac вне форума   Ответить с цитированием
Старый 14.06.2019, 02:25   #4
edogs
Писать: search@ник_тут.ru
 
Аватар для edogs
 
Регистрация: 16.12.2005
Адрес: St.Petersburg, Russia
Сообщений: 7,880
Репутация: 87299
Отправить сообщение для edogs с помощью Skype™

По умолчанию Re: Как провернуть такое с массивом?

Dram,
Вам бы прочитать, просто прочитать хотя бы 1 раз мануал по php, официальный. Не для того что бы все знать и все понять, а просто что бы понимать для каких задач уже есть штатные функции и где не надо ничего изобретать, а можно просто применить. Потому что одно дело когда вопрос вида "как заархивировать текст своим алгоритмом", а другое дело когда вопрос вида "как заменить букву а на б".

Не помним какая там у Вас версия php, в современных можно поэлегантнее, но в старых как-то так
Цитата:
<?php
$a=array();
$a[0]=array(1260,1281,1399);
$a[1]=array(199,491,666);
function addlink(&$value,$key) {
$value='/index.php?option=com_content&task=view&id=='.$value;
}

array_walk_recursive($a,'addlink');

var_dump($a);
?>
__________________
Разработка проектов связанных с криптовалютой. Разумные цены. Хорошее качество. Адекватный подход.
Ищем админа на сервер, в личку: цену установки vdsmanager на hetzner и расстановку ИП.
edogs на форуме   Ответить с цитированием
Старый 14.06.2019, 02:37   #5
poc
Аспирант
 
Регистрация: 26.10.2018
Сообщений: 153
Репутация: 5367

По умолчанию Re: Как провернуть такое с массивом?

edogs, слишком сложно для новичка, он же потом не будет знать, как апгрейдить этот костыль)

Примерно так, скорее всего будет работать сразу. не было времени проверять.

Код:
foreach($massive as $m)
    {foreach($massive[$m] as $k =>$v)
        {
            ($massive[$m][$v] = ( '/index.php?option=com_content&task=view&id=' . $massive[$m][$v] );
        };
};
Где $massive - исходный массив.

Последний раз редактировалось poc; 14.06.2019 в 02:55..
poc вне форума   Ответить с цитированием
Старый 14.06.2019, 02:57   #6
kreat0r
Аспирант
 
Регистрация: 16.05.2012
Сообщений: 100
Репутация: 9526

По умолчанию Re: Как провернуть такое с массивом?

$newarr = array_map(function($a){return '/index.php?option=com_content&task=view&id=' . $a;}, $arr);

Хотя, не понял что за массив у автора. Но через array_map всё равно реализовать можно
kreat0r вне форума   Ответить с цитированием
Старый 14.06.2019, 03:19   #7
edogs
Писать: search@ник_тут.ru
 
Аватар для edogs
 
Регистрация: 16.12.2005
Адрес: St.Petersburg, Russia
Сообщений: 7,880
Репутация: 87299
Отправить сообщение для edogs с помощью Skype™

По умолчанию Re: Как провернуть такое с массивом?

Цитата:
Сообщение от kreat0r Посмотреть сообщение
$newarr = array_map(function($a){return '/index.php?option=com_content&task=view&id=' . $a;}, $arr);

Хотя, не понял что за массив у автора. Но через array_map всё равно реализовать можно
Может стоило сначала понять? Потому что массив у автора мультиуровневый, а аррей_мэп работает только с 1 уровнем и в новом массиве будут запоротые данные.

---------- Добавлено 14.06.2019 в 03:21 ----------

Цитата:
Сообщение от poc Посмотреть сообщение
edogs, слишком сложно для новичка, он же потом не будет знать, как апгрейдить этот костыль).
А костыль-то в чем? Прямое примение функции из мануала по назначению. И по коду сразу будет видно "что происходит", без вникания во вложенный цикл.
edogs на форуме   Ответить с цитированием
Старый 14.06.2019, 05:24   #8
poc
Аспирант
 
Регистрация: 26.10.2018
Сообщений: 153
Репутация: 5367

По умолчанию

Цитата:
Сообщение от edogs Посмотреть сообщение
А костыль-то в чем? Прямое примение функции из мануала по назначению. И по коду сразу будет видно "что происходит", без вникания во вложенный цикл.
Очевидно, автор что-то подсаживает на жумлу)
Костыль скорее всего в том, что это промежуточные данные, которые можно в финальный вид привести сразу в момент генерации
poc вне форума   Ответить с цитированием
Старый 14.06.2019, 07:09   #9
Dram
Академик
 
Регистрация: 28.06.2008
Сообщений: 6,940
Репутация: 390201

ТопикСтартер Re: Как провернуть такое с массивом?

Цитата:
Сообщение от Dram Посмотреть сообщение
Все сделал......
Всем спасибо, наверное это надо было выделить жирным, я ведь сделал все еще до первого сообщения
Цитата:
foreach ($array as $item){
$id=(explode(',', $item["group_concat( id separator ',' )"]));
sort($id);

foreach (range(0, count($id)-1) as $number) {
$id[$number] = '/index.php?option=com_content&view=article&id='.$id[$number] ;
}
file_put_contents('000.txt', print_r($id, 1), FILE_APPEND);

}
Dram вне форума   Ответить с цитированием
Старый 14.06.2019, 11:28   #10
_SP_
Академик
 
Регистрация: 24.03.2008
Адрес: MSK
Сообщений: 3,594
Репутация: 359125

По умолчанию Re: Как провернуть такое с массивом?

Никак. Это ненужная, вредная идея.
Одинаковое фигачьте в шаблон итп...
_SP_ вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны