Search in Array
Ik wil in een array zoeken naar een klein deeltje van een woord en wil dit tijdens een loop laten controleren.
In de array $teams zit op een bepaalde positie een woord OKK, als dit deel van het woord in de loop voorbij komt wil ik een style meegeven. Na het te zoeken woord kan er dus gerust nog een spatie en een cijfer komen.
Onderstaande is met behulp van Jacco van PHP hulp al opgebouwd:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$i = 0;
$standen_i = 0;
while(!empty($teams[$i]))
{
if ($team[$i] == "OKK") {$style = "style=\"font-weight: bold\"";}
echo "<tr".$style.">" ;
echo "<td>".$standen[1][$standen_i]."</td>";
echo "<td>".$teams[$i]."</td>" ;
$standen_i++;
while($standen_i < (($i+1)*5))
{
echo "<td>".$standen[1][$standen_i]."</td>";
$standen_i++;
}
echo "<td>".$diverse[$i]."</td>" ;
echo "</tr>\n";
$i++ ;
}
?>
$i = 0;
$standen_i = 0;
while(!empty($teams[$i]))
{
if ($team[$i] == "OKK") {$style = "style=\"font-weight: bold\"";}
echo "<tr".$style.">" ;
echo "<td>".$standen[1][$standen_i]."</td>";
echo "<td>".$teams[$i]."</td>" ;
$standen_i++;
while($standen_i < (($i+1)*5))
{
echo "<td>".$standen[1][$standen_i]."</td>";
$standen_i++;
}
echo "<td>".$diverse[$i]."</td>" ;
echo "</tr>\n";
$i++ ;
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn Roverts
Ik heb ook in_array gevonden. Hiermee kan ik dus zoeken in een array en als gevonden een TRUE of FALSE terug. Maar hoe kan ik dan op een deel van een woord zoeken in de array?
Leg eens even uit wat je precies van plan bent want ik denk dat je een verkeerde aanpak hebt.
Oke...
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
strstr zal je nodig hebben. En dan iedere entry in de array aflopen. in_array kijkt alleen of een van de entries in de array overeen komt met de opgegeven waarde.
Je vervangt
door
Je vervangt
door
Ik heb een van de volgende Array's, nu ga ik dit in een tabel stoppen zoals hierboven staat gescript. Werkt super tot zover.
Nu wil ik bij een bepaalde gemachte waarde in de onderstaande array de rij-regel een style waarde meegeven, in dit geval de tabelregel vet gedrukt.
Ik dit niet in een database zetten, mss in de toekomst, maar nu nog niet. Zie het dan ook vooral als leren werken met een array en ermee omgaan.
Array ( [0] => VCN KING SOF 1 [1] => ATAK'55 1 [2] => JOLA/OLYMPUS 1 [3] => RVC/LIBANON 1 [4] => VOLLEY ZUID 1 [5] => VVS'92 1 [6] => WIK/UNIVÉ 1 [7] => BURGST 1 [8] => OKK'70 1 [9] => ZUVO 1 [10] => VOY 1 )
Dit heb ik zojuist gescript :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
//hooi is de array
//naald is waar je naar zoekt.
$hooi = array('phphulp.nl', 'websitemaken.be', 'php.net', 'google.com');
$naald = '.nl';
for($i=0; $i < count($hooi, COUNT_RECURSIVE); $i++)
{
$pos = strstr($hooi[$i], $naald);
if ($pos === false)
{
echo "Niet gevonden in $hooi[$i]!<br><br>\n\n";
}
else
{
echo "Gevonden in $hooi[$i]!<br><br>\n\n";
}
}
?>
//hooi is de array
//naald is waar je naar zoekt.
$hooi = array('phphulp.nl', 'websitemaken.be', 'php.net', 'google.com');
$naald = '.nl';
for($i=0; $i < count($hooi, COUNT_RECURSIVE); $i++)
{
$pos = strstr($hooi[$i], $naald);
if ($pos === false)
{
echo "Niet gevonden in $hooi[$i]!<br><br>\n\n";
}
else
{
echo "Gevonden in $hooi[$i]!<br><br>\n\n";
}
}
?>
Als je het bewerkt is het volgens mij precies wat jij wil.
Mvg
Pepijn
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
Nog een klein vraagje voor de schoonheid van de echo :
Hij breekt de regel nu af na OKK'70 en gaat met 1 verder op de volgende regel.
<tr style="font-weight: bold"><td>9</td><td>OKK'70 1</td><td>17</td><td>35</td><td>0</td><td>-11</td><td> </td></tr>
Hoe krijg ik dat weg?
Ps. bedankt Pepijn, Jelmer had al een werkende oplossing. Maar ik zal er zeker even naar kijken!
Gewijzigd op 01/01/1970 01:00:00 door Martijn Roverts
Roverts schreef op 07.04.2008 22:32:
Hoe krijg ik dat weg?
Hoe heb je het er in gekregen?
Zoals ik het ziet vind strstr het woord in de array en aan het einde van het woord zet hij er een \n (enter) achter oid.
En hoe echo je het nu?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$i = 0;
$standen_i = 0;
while(!empty($teams[$i]))
{
if(strstr($teams[$i], 'OKK')) {$style = " style=\"font-weight: bold\"";} else {$style = "";}
echo "<tr".$style.">" ;
echo "<td>".$standen[1][$standen_i]."</td>";
echo "<td>".$teams[$i]."</td>" ;
$standen_i++;
while($standen_i < (($i+1)*5))
{
echo "<td>".$standen[1][$standen_i]."</td>";
$standen_i++;
}
echo "<td>".$diverse[$i]."</td>" ;
echo "</tr>\n";
$i++ ;
?>
$i = 0;
$standen_i = 0;
while(!empty($teams[$i]))
{
if(strstr($teams[$i], 'OKK')) {$style = " style=\"font-weight: bold\"";} else {$style = "";}
echo "<tr".$style.">" ;
echo "<td>".$standen[1][$standen_i]."</td>";
echo "<td>".$teams[$i]."</td>" ;
$standen_i++;
while($standen_i < (($i+1)*5))
{
echo "<td>".$standen[1][$standen_i]."</td>";
$standen_i++;
}
echo "<td>".$diverse[$i]."</td>" ;
echo "</tr>\n";
$i++ ;
?>
Je verandert niks aan de inhoud van $teams[$i]. Dus ik vraag mij af of die enter/<br/> er niet al in zit?