Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem][PHP]Explode !


Rekomendowane odpowiedzi

Opublikowano

Hej. Mam problem.

Mam zapis wojsk gracza :

1 30;2 18

Czyli inaczej

id_jed ilość_jed

; jest tu rozdzielaczem między jednym a drugim.

W ten sam sposób jest zapis wysyłanych wojsk.

W takim razie mam zapis wojsk gracza :

1 30;2 18

 

A zapis przysyłanych wojsk jest taki :

1 45;2 6;3 18

 

I chcę by dla takiego przypadku zwróciło mi zapis :

1 75;2 24;3 18

 

 

Pomoże ktoś ? :)

Opublikowano

Nie za bardzo rozumiem, skąd niby wzięło się "

1 75;2 24;3 18".

Proszę o rozwinięcie problemu, a wtedy mam nadzieję, że będę mógł pomóc.

Opublikowano

Tak jak mówiłem

 

Jeśli wojska dochodzą do wioski to ich ilość się ZWIĘKSZA.

 

Król Gracz1 wysłał królowi Gracz2 45 pikinierów, 6 ochotniczych mieczników i 18 wojowników. Przed wysłaniem wojsk króla Gracz1 ,król Gracz2 postanowił że zapisze swoje wojsko - posiadał 30 pikinierów i 18 mieczników. Jako iż Król był mądry wykonał sobie zapis 1 30;2 18. Wiedział ,że pierwsza cyfra to numer jednostki. Odstęp oznaczał zapis ilości ,a znak ; oddzielał jeden typ wojsk od drugich. Poprosił swojego nadwornego informatyka by ten wykonał skrypt ,który powie mu jaki będzie zapis wojsk po otrzymaniu uch od Króla Gracz1.

Wiedział on też ,że jeśli skrypt nadwornego informatyka działa dobrze to po "zsumowaniu" zapisów 1 30;2 18 i 1 45;2 6;3 18 powinien otrzymać zapis 1 75;2 24;3 18 .

 

No i ja jestem tym nadwornym Informatykiem ! Proszę pomóż bo król każe mnie ściąć ! ;(

 

 

 

Tak nudzi mi się :)

 

 

Opublikowano

<?
$a = explode(";","1 30;2 18");
$b = explode(";","1 45;2 6;3 18");

$max = count($a)-1;
for($i=0;$i<=$max;$i++){
$c = explode(" ",$a[$i]);
$d[$c['0']] = $c['1'];
}

$max = count($-1;
for($i=0;$i<=$max;$i++){
$c = explode(" ",$b[$i]);
$e[$c['0']] = $c['1'];
}

$there = TRUE;
for($i=1;$i<=3;$i++){ // zamiast trzy wstawiasz ile masz rodzaj jednostek
if(!empty($d[$i]) && !empty($e[$i])){
	$d[$i] = $d[$i] + $e[$i];
	if($there){
		$f = $i." ".$d[$i];
		$there = FALSE;
	}else $f .= ";".$i." ".$d[$i];
}else{
	if(!empty($d[$i])){
		if($there){
			$f = $i." ".$d[$i];
			$there = FALSE;
		}else $f .= ";".$i." ".$d[$i];
	}elseif(!empty($e[$i])){
		if($there){
			$f = $i." ".$e[$i];
			$there = FALSE;
		}else $f .= ";".$i." ".$e[$i];
	}
}
}

echo $f;
?>

 

Popraw sobie $B na $b

Opublikowano

No ludzie aż sie zdziwiłem jak zadziałało ! <hura> :]

Kod :

<?php
$Dochodza = '1 30;2 18;3 15;4 80';
$Wojsko = '1 40;4 60';
echo $Wojsko.'<br>'.$Dochodza.'<hr>';
$donotre = $Dochodza;
foreach(explode(';', $Wojsko) as $qu) {
$an = explode(' ', $qu);
foreach(explode(';', $Dochodza) as $trele) {
$numbe = explode(' ', $trele);
if($an['0'] == $numbe['0']) {
  $an['1'] = $an['1'] + $numbe['1'];
  $donotre = str_replace($numbe['0'].' '.$numbe['1'].';', '', $donotre);
  $donotre = str_replace($numbe['0'].' '.$numbe['1'], '', $donotre);
 }
}
$Zapis = $Zapis. $an['0'].' '.$an['1'].';';
}
$Zapis = $Zapis. $donotre;
if(substr($Zapis, -1, 1) == ';') $Zapis = substr($Zapis, 0, -1);
echo $Zapis;
?>

Opublikowano

No widzisz jednak sam napisałeś :)

To po co ja wysilałem swój mózg i straciłem 15minut z mojego cennego życia :)

Mówiłeś że nie lubisz foreach

 

PS Wejdź na gg jeśli możesz.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...