Есть строчка вида
3199996|Amazing Dubbing||3199114|AniDUB||3204688|AniLibria||3204934|AniMaunt||3198662|AnimeVost||3199009|AniPlay||3199879|AniRise||3198674|AniStar||3210309|Anything Group||3199048|KBK||3201994|KitsuneBox||3200688|Risens Team||3199154|SHIZA Project||3199180|TAKEOVER Project|||3206565|AniDUB||3214108|AniLibria||3204770|AnimeVost||3214571|AniRise||3204751|AniStar||3213831|Anything Group||3206322|KBK||3211200|KitsuneBox||3205028|Risens Team||3210273|SHIZA Project|||3216986|AniDUB||3218426|AniLibria||3214254|AnimeVost||3219614|AniRise||3214057|AniStar||3214746|Anything Group||3219664|KBK||3214608|Risens Team||3215849|SHIZA Project|||3218870|AnimeVost||3218862|AniStar||3219909|Anything Group||3218760|Risens Team
Все что я могу сделать с этой кашей
$str = "3199996|Amazing Dubbing||3199114|AniDUB||3204688|AniLibria||3204934|AniMaunt||3198662|AnimeVost||3199009|AniPlay||3199879|AniRise||3198674|AniStar||3210309|Anything Group||3199048|KBK||3201994|KitsuneBox||3200688|Risens Team||3199154|SHIZA Project||3199180|TAKEOVER Project|||3206565|AniDUB||3214108|AniLibria||3204770|AnimeVost||3214571|AniRise||3204751|AniStar||3213831|Anything Group||3206322|KBK||3211200|KitsuneBox||3205028|Risens Team||3210273|SHIZA Project|||3216986|AniDUB||3218426|AniLibria||3214254|AnimeVost||3219614|AniRise||3214057|AniStar||3214746|Anything Group||3219664|KBK||3214608|Risens Team||3215849|SHIZA Project|||3218870|AnimeVost||3218862|AniStar||3219909|Anything Group||3218760|Risens Team";
$mas = explode("|||", $str);
$str_result="";
foreach ($mas as $value) {
$mas1 = explode("||", $value);
foreach ($mas1 as $value1) {
$mas2 = explode("|", $value1);
$str_result .= $mas2[1]."-".$mas2[0]."<br>";
}
}
echo $str_result;
Результат выполнения кода
Amazing Dubbing-3199996
AniDUB-3199114
AniLibria-3204688
AniMaunt-3204934
AnimeVost-3198662
AniPlay-3199009
AniRise-3199879
AniStar-3198674
Anything Group-3210309
KBK-3199048
KitsuneBox-3201994
Risens Team-3200688
SHIZA Project-3199154
TAKEOVER Project-3199180
AniDUB-3206565
AniLibria-3214108
AnimeVost-3204770
AniRise-3214571
AniStar-3204751
Anything Group-3213831
KBK-3206322
KitsuneBox-3211200
Risens Team-3205028
SHIZA Project-3210273
AniDUB-3216986
AniLibria-3218426
AnimeVost-3214254
AniRise-3219614
AniStar-3214057
Anything Group-3214746
KBK-3219664
Risens Team-3214608
SHIZA Project-3215849
AnimeVost-3218870
AniStar-3218862
Anything Group-3219909
Risens Team-3218760
Задача: преобразовать строчку из исходного вида в такую
AnimeVost|3198662|3204770|3214254|3218870||AniStar|3198674|3204751|3214057|3218862||Anything Group|3210309|3213831|3214746|3219909||Risens Team|3200688|3205028|3214608|3218760||AniDUB|3199114|3206565|3216986||AniLibria|3204688|3214108|3218426||.....||Amazing Dubbing|3199996
AnimeVost, AniStar и т.д. - это группы людей, 3198662, 3204770 и т.д. - это айди произведений, созданных этими группами людей. Мне необходимо отсортировать строчку так, чтоб присвоить группе все id, которые ей принадлежат. Причем та группа у которой больше id идет первой, далее та у которой меньше чем у первой и т.д. (по убыванию кол-ва id)
поделить можно так, но что потом то делать?
$all = explode('|||', $str);
foreach($all as $i) {
$temp = explode('||', $i);
$arr = [];
foreach($temp as $x) {
list($v, $k) = explode('|', $x);
$arr[] = [$k =>$v];
}
$arr = array_merge_recursive(...$arr);
$res[] = $arr;
}
print_r($res);
https://eval.in/946366
$str="3199996|Amazing Dubbing||3199114|AniDUB||3204688|AniLibria||3204934|AniMaunt||3198662|AnimeVost||3199009|AniPlay||3199879|AniRise||3198674|AniStar||3210309|Anything Group||3199048|KBK||3201994|KitsuneBox||3200688|Risens Team||3199154|SHIZA Project||3199180|TAKEOVER Project|||3206565|AniDUB||3214108|AniLibria||3204770|AnimeVost||3214571|AniRise||3204751|AniStar||3213831|Anything Group||3206322|KBK||3211200|KitsuneBox||3205028|Risens Team||3210273|SHIZA Project|||3216986|AniDUB||3218426|AniLibria||3214254|AnimeVost||3219614|AniRise||3214057|AniStar||3214746|Anything Group||3219664|KBK||3214608|Risens Team||3215849|SHIZA Project|||3218870|AnimeVost||3218862|AniStar||3219909|Anything Group||3218760|Risens Team";
$str=str_replace('|||','||',$str);
$mass=explode("||", $str);
$str2="";
foreach ($mass as $key => $value) {
$mass2=explode("|", $value);
$str2=$str2.",".$mass2[0].",".$mass2[1];
}
$str2=substr($str2, 1);
$mass3=explode(",", $str2);
$c=count($mass3);
for($i=0;$i<=$c;$i++){
if($i & 1){$arrr[$mass3[$i-1]]=$mass3[$i]; $unic_text[$mass3[$i]]=$mass3[$i-1];}
}
foreach ($unic_text as $key => $value) {
foreach ($arrr as $key1 => $val) {
if($key==$val){
$masiv[$key]=$masiv[$key]."|".$key1;
}}
}
print_r($masiv);
Как-то так, потом usort, а уже потом implode. Хотя думаю есть более элегантное решение.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ajax отправка формы н работает, выдает в консоле ошибку как на скрине
Здравствуйте,столкнулся с такой проблемойХочу подсвечивать активные вкладки,но когда добавлю index, ticket то перестаёт работать правильно
Подскажите регулярное выражениеНеобходимо удалить все символы, кроме: