webForumDet fria alternativet

Variabler eller vad det nu heter.. Array kanske?

PHP

9 svar · 393 visningar · startad av peronet

Medlem sedan sep. 200193 inlägg
Frågan#1

Hej hopp!

jag skriver koden först sedan berättar jag vad jag vill åstakomma..

$A[$i] = "A1;A2;A3;A4";
$B[$i] = "B1;B2;B3;B4;B5;B6";

$splittatA[$i]= explode(";", $A[$i]);
$splittatB[$i]= explode(";", $B[$i]);

$meddelande[$i] = "......??";

Det är som så, att jag kommer få in ca 50 st $A och $B

Jag skulle vilja ha följande i en sträng:

t.ex $meddelande[3] = "A1 - A2 - A3 - A4 .:. B1 - B2 - B3 - B4 - B5 B6";

Hur bär man sig åt?

Medlem sedan jan. 20007 697 inlägg
#2

Tillåt mig att bli yr... ;)
Men vad i hela världen har du tänkt göra? Jag förstod inte nånting av det där. :o

Medlem sedan sep. 200193 inlägg
#3

Hej hopp!

jag skriver koden först sedan berättar jag vad jag vill åstakomma..

$A[$i] = "A1;A2;A3;A4";
$B[$i] = "B1;B2;B3;B4;B5;B6";

$splittatA[$i]= explode(";", $A[$i]);
$splittatB[$i]= explode(";", $B[$i]);

$meddelande[$i] = "......??";

Det är som så, att jag kommer få in ca 50 st $A och $B

Jag skulle vilja ha följande i en sträng:

t.ex $meddelande[3] = "A1 - A2 - A3 - A4 .:. B1 - B2 - B3 - B4 - B5 B6";

Hur bär man sig åt?

------------------
.... Weii

Det kommer komma in mail till mig med $A kommandon i subject fältet, samt $B kommandon i meddelande fältet.

Anta att $A innehåller värden om vad som skall hända.. t.ex står det MAIL; B14 skall den sätta in ett värde i databasen som gör ett utskick till grupp B14.

$B kan innehålla adresser / telefonnummer som skall kontaktas, detta skall oxå in i en databas, i samma tabell som ovanstående data.

Problemet är att det ibland kan vara 1 värde i $B och ibland kan det vara 10.. likadant gäller det för $A..

Jag vet inte hur jag skall göra för att göra detta till en rad av data.. Jag förmodar att det krävs en del loopar o sånt, skulle jag göra det nu skulle hela scriptet bli fullt av IF och det är ju inte riktigt det jag vill.. x(

någon som fattade? :stud

Medlem sedan sep. 20023 inlägg
#4

Hmm... Kompicerat, men inte olösbart...

Jag tror att en bra början kan vara att strunta i att specifiera längden på din array, om du inte vet värdet av $i i förväg...
En specifierad vektor utan specifikation fungerar inte så bra ;)

Medlem sedan aug. 20002 975 inlägg
#5

Jag förstår nog inte frågan, men för att slå ihop två arrayer kan du använda dig av array_merge(). T.ex

$A[$i] = "A1;A2;A3;A4"; 
$B[$i] = "B1;B2;B3;B4;B5;B6"; 

$splittatA[$i]= explode(";", $A[$i]); 
$splittatB[$i]= explode(";", $B[$i]); 

$meddelande[$i] = array_merge($splittatA[$i], $splittatB[$i]);

$meddelande[$i] = implode(" - ", $meddelande[$i]);

Men det kanske inte alls var vad du frågade efter. :)

Medlem sedan sep. 200193 inlägg
#6

Okej.. nu vet jag exakt hur det ska vara..

kod:

<?

$i = "1";
$A[$i] = "MESSAGE=Tjosan; sender=Mus;";
$B[$i] = "46739888888;46734777777;46702111111;46708999999;";

$splittatA[$i]= explode(";", $A[$i]);
$count = count($splittatA[$i]);

for( $h = 0; $h < $count; $h++) {
if (ereg ("sender=", $splittatA[$i][$h], $splittatA[$i][$h])) {
echo "
SENDER = $splittatA[$i][$h] <BR>
";
} }

$splittatB[$i]= explode(";", $B[$i]);

$meddelande[$i] = array_merge($splittatA[$i], $splittatB[$i]);

$meddelande[$i] = implode(" - ", $meddelande[$i]);

echo "$meddelande[$i]";
?>

Skriver ut:

SENDER = Array[1]
MESSAGE=Tjosan - Array - - 46739888888 - 46734777777 - 46702111111 - 46708999999 -

Jag vill att det står:

SENDER = sender=Mus
....

...

Något förslag?

Medlem sedan jan. 20007 697 inlägg
#7

Jag har läst... och läst... och läst - men jag förstår ändå inte. :x :e

Medlem sedan sep. 200193 inlägg
#8

Jag vill att den skriver ut

sender=Mus

det finns i $A
Mus kan bytas ut till t.ex katt, eller orm eller dyl..

grejjen är den att sender=Mus kan så vart som helst i strängen $A

Jag vill veta vad just sender=? är ..

Denna datan får jag in via mail och tanken är att allt ska gå automatiskt och åka in i olika databaser basserat på just sender värdet..

måste ju veta vad det är för värde...

Medlem sedan aug. 20002 975 inlägg
#9

Förstår inte vad du försöker göra med den här if-satsen:

if (ereg ("sender=", $splittatA[$i][$h], $splittatA[$i][$h])) {

När den hittar "sender=" i en sträng i en arrayvariabel, ersätter den strängen med en array där första (och enda) elementet innehåller "sender=".

Det är kanske stristr() du letar efter:

if (stristr ($splittatA[$i][$h], "sender=")) {

Sedan går det inte att ha en arrayvariabel inne i en sträng utan att skaffa sig problem. Du får omge den antingen med hakparenteser {} eller bryta ut den ur strängen. Sammantaget skulle det bli något sådant här:

for( $h = 0; $h < $count; $h++) { 
  if (stristr ($splittatA[$i][$h], "sender=")) {
    echo "\nSENDER = {$splittatA[$i][$h]} <BR>\n";
    // alt echo "\nSENDER = ".$splittatA[$i][$h]." <BR>\n"; 
  } 
}
Medlem sedan sep. 200193 inlägg
#10

Fy fasiken!

Du grejja det..
Din grej fixa det.. :)

Tack tack tack :)

265 ms totalt · 3 externa anrop · v20260731065814-full.eb2a8c97
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)