Search in Array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn Roverts

Martijn Roverts

07/04/2008 21:30:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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++ ;
        }

?>
Gewijzigd op 01/01/1970 01:00:00 door Martijn Roverts
 
PHP hulp

PHP hulp

05/11/2024 11:39:51
 
Han eev

Han eev

07/04/2008 21:38:00
Quote Anchor link
Zie
trim en
strpos en
strstr
 
Martijn Roverts

Martijn Roverts

07/04/2008 22:04:00
Quote Anchor link
Oke ik snap een beetje waar ik op moet zoeken,

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?
 
PHP Newbie

PHP Newbie

07/04/2008 22:15:00
Quote Anchor link
Dit lijkt me typisch een karweitje voor een database..

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
 
Jelmer -

Jelmer -

07/04/2008 22:17:00
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if($team[$i] == "OKK") {

door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(strstr($team[$i], 'OKK')) {
 
Martijn Roverts

Martijn Roverts

07/04/2008 22:24:00
Quote Anchor link
Oke geen probleem,

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 )
 
Pepijn

Pepijn

07/04/2008 22:30:00
Quote Anchor link
Beste roverts,

Dit heb ik zojuist gescript :)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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";
    }

}


?>


Als je het bewerkt is het volgens mij precies wat jij wil.

Mvg
Pepijn
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
 
Martijn Roverts

Martijn Roverts

07/04/2008 22:32:00
Quote Anchor link
Oke thanx Jelmer, hij werkt nu.

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>&nbsp;</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
 
- SanThe -

- SanThe -

07/04/2008 22:35:00
Quote Anchor link
Roverts schreef op 07.04.2008 22:32:
Hoe krijg ik dat weg?

Hoe heb je het er in gekregen?
 
Martijn Roverts

Martijn Roverts

07/04/2008 22:40:00
Quote Anchor link
Haha zo kun je het ook stellen ja.

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.
 
- SanThe -

- SanThe -

07/04/2008 22:43:00
Quote Anchor link
En hoe echo je het nu?
 
Martijn Roverts

Martijn Roverts

07/04/2008 22:46:00
Quote Anchor link
Dit is de code met de echo :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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++ ;
?>
 
- SanThe -

- SanThe -

07/04/2008 22:53:00
Quote Anchor link
Je verandert niks aan de inhoud van $teams[$i]. Dus ik vraag mij af of die enter/<br/> er niet al in zit?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.