Bedoel is dus dat hij dubbele waardes uit ples en letters haalt. Raar maar weet het even niet meer.
Twee
wil graag van ples $ples[key][woord] zoals: $ples[a][aap] $ples[a][als].
En dan graag $a = $ples[a].
dan nog wat maar kom er even niet uit, raar :p
Output:PHP Code:
<?php
$tekst = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc id ipsum pulvinar sed iaculis lorem malesuada. Cras convallis metus id mauris viverra fermentum. Maecenas ultricies tellus eget enim tincidunt ut blandit quam semper. Ut orci lacus, ultricies at venenatis laoreet, sodales a ante. Etiam vestibulum pellentesque felis, eget. ';
echo $tekst;
$letters = array();
$ples = array();
$woorden = explode(' ', $tekst);
foreach ($woorden as $woord) {
$woord = strtolower($woord);
$letter = substr($woord, 0, 1);
$letters[] = $letter;
$ples[$letter][] = $woord;
}
sort($letters);
ksort($ples);
sort($ples);
print_r($letters);
echo '<br/><br/>';
print_r($ples);
?>
Array ( [0] => [1] => a [2] => a [3] => a [4] => a [5] => a [6] => b [7] => c [8] => c [9] => c [10] => c [11] => d [12] => e [13] => e [14] => e [15] => e [16] => e [17] => f [18] => f [19] => i [20] => i [21] => i [22] => i [23] => i [24] => l [25] => l [26] => l [27] => l [28] => m [29] => m [30] => m [31] => m [32] => n [33] => o [34] => p [35] => p [36] => q [37] => s [38] => s [39] => s [40] => s [41] => s [42] => t [43] => t [44] => u [45] => u [46] => u [47] => u [48] => v [49] => v [50] => v )
Array ( [0] => Array ( [0] => ) [1] => Array ( [0] => blandit ) [2] => Array ( [0] => dolor ) [3] => Array ( [0] => nunc ) [4] => Array ( [0] => orci ) [5] => Array ( [0] => quam ) [6] => Array ( [0] => fermentum. [1] => felis, ) [7] => Array ( [0] => pulvinar [1] => pellentesque ) [8] => Array ( [0] => tellus [1] => tincidunt ) [9] => Array ( [0] => viverra [1] => venenatis [2] => vestibulum ) [10] => Array ( [0] => consectetur [1] => cras [2] => cras [3] => convallis ) [11] => Array ( [0] => lorem [1] => lorem [2] => lacus, [3] => laoreet, ) [12] => Array ( [0] => malesuada. [1] => metus [2] => mauris [3] => maecenas ) [13] => Array ( [0] => ultricies [1] => ut [2] => ut [3] => ultricies ) [14] => Array ( [0] => amet, [1] => adipiscing [2] => at [3] => a [4] => ante. ) [15] => Array ( [0] => elit. [1] => eget [2] => enim [3] => etiam [4] => eget. ) [16] => Array ( [0] => ipsum [1] => id [2] => ipsum [3] => iaculis [4] => id ) [17] => Array ( [0] => sit [1] => sagittis [2] => sed [3] => semper. [4] => sodales ) )
- Verwarring 3d arrays
-
30-01-2011, 00:31 #1
- Berichten
- 162
- Lid sinds
- 15 Jaar
Verwarring 3d arrays
-
30-01-2011, 00:36 #2
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
Kijk volgende post, deze had een foutje.
-
30-01-2011, 00:37 #3
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
Heb dit al veranderd:
if(!array_key_exists($letter, $letters))
{ $letters[] = $letter; }
doet niets :s :p
amai je was snel had niet gezien dat je getypy had.
-
30-01-2011, 00:39 #4
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
Klein foutje erin :) deze werkt.
PHP Code:<?php
$string = "dit is een hele rij met woorden die in je array gaan komen 902.92398# 0---)@#* en nog meer tekst";
echo "String was: $string<br><br>";
// Alles buiten de letters/getallen eruit halen
$string = ereg_replace("[^a-zA-Z0-9 ]", "", $string);
echo "String werd: $string<br><br>";
$woorden = explode(" ", $string);
$ples = array();
foreach($woorden as $woord) {
$letter = substr($woord, 0, 1);
if(!array_key_exists($letter, $ples)) $ples[$letter] = array();
$ples[$letter][] = $woord;
}
ksort($ples);
echo '<pre>';
print_r($ples);
echo '</pre>';
?>
-
30-01-2011, 00:42 #5
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
Ziet er goed uit :D
Precies wat ik nodig heb.
Waarom: $letter = substr(0, 1, $woord); en niet eerst woord of zit ik fout ?
-
30-01-2011, 00:44 #6
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
Die heb ik aangepast in de volgende, dat was een foutje dat ik maakte ;-) was even uit het hoofd gedaan.
-
30-01-2011, 00:47 #7
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
Nog een ding:
[d] => Array
(
[0] => dit
[1] => die
die komt eerder, dus sort($ples) ?
-
30-01-2011, 00:49 #8
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
dan moet je dus sort($ples['d']) doen. Momentje even testen :)
Vlak na de ksort kun je dit plaatsen:
PHP Code:foreach($ples as $key => $value) {
sort($ples[$key]);
}
-
30-01-2011, 00:52 #9
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
oke en strtolower voor dit dan nog erin gooien :D
-
30-01-2011, 00:53 #10
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
Die kun je vast zelf wel inpassen. Je kunt hem op een paar plaatsen zetten, maar ik zou hem bij de foreach plaatsen die de woorden nagaat. Dus;
PHP Code:foreach($woorden as $woord) {
$woord = strtolower($woord);
}
-
30-01-2011, 00:54 #11
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
http://pandelhofs.be/b/?p=t bekijk het resultaat bij mij eens:
Warning: array_key_exists(): The first argument should be either a string or an integer in /customers/pandelhofs.be/pandelhofs.be/httpd.www/b/pages/t.php on line 18
lol, het is toch een string ?
Aanvullend bericht:
Die kun je vast zelf wel inpassen. Je kunt hem op een paar plaatsen zetten, maar ik zou hem bij de foreach plaatsen die de woorden nagaat. Dus;
PHP Code:foreach($woorden as $woord) {
$woord = strtolower($woord);
}
PHP Code:foreach($woorden as $woord) {
$woord = strtolower($woord);
$letter = substr($woord, 0, 1);
if(!array_key_exists($letter, $ples)) $ples[$letter] = array();
$ples[$letter][] = $woord;
}
en weet je wat die er tussen doet ?::
[0] => Array
(
[0] =>
)Laatst aangepast door gast26686 : 30-01-2011 om 00:57 Reden: Automatisch samengevoegd.
-
30-01-2011, 00:58 #12
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
De functie controleert de eerste letter ten opzichte van de array $ples die we hebben gemaakt. Zoals je ziet hebben we in je resultaat ergens staat:
[0] => Array ( [0] => );
Er komt dus ergens een blanco waarde langs, die moeten we even filteren.
Deze werkt met jouw string:
PHP Code:<?php
$string = "String was: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc id ipsum pulvinar sed iaculis lorem malesuada. Cras convallis metus id mauris viverra fermentum. Maecenas ultricies tellus eget enim tincidunt ut blandit quam semper. Ut orci lacus, ultricies at venenatis laoreet, sodales a ante. Etiam vestibulum pellentesque felis, eget. ";
echo "String was: $string<br><br>";
// Alles buiten de letters/getallen eruit halen
$string = ereg_replace("[^a-zA-Z0-9 ]", "", $string);
echo "String werd: $string<br><br>";
$woorden = explode(" ", $string);
$ples = array();
foreach($woorden as $woord) {
$woord = strtolower($woord);
$letter = substr($woord, 0, 1);
if(strlen($letter) == 1) {
if(!array_key_exists($letter, $ples)) $ples[$letter] = array();
$ples[$letter][] = $woord;
}
}
ksort($ples);
foreach($ples as $key => $value) {
sort($ples[$key]);
}
echo '<pre>';
print_r($ples);
echo '</pre>';
?>
array_key_exists( , $ples);
wat dus neerkomt op array_key_exists(null, $ples); en dat mag niet bij die functie.
-
30-01-2011, 00:59 #13
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
De functie controleert de eerste letter ten opzichte van de array $ples die we hebben gemaakt. Zoals je ziet hebben we in je resultaat ergens staat:
[0] => Array ( [0] => );
Er komt dus ergens een blanco waarde langs, die moeten we even filteren.
Deze werkt met jouw string:
PHP Code:<?php
$string = "String was: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras sagittis nunc id ipsum pulvinar sed iaculis lorem malesuada. Cras convallis metus id mauris viverra fermentum. Maecenas ultricies tellus eget enim tincidunt ut blandit quam semper. Ut orci lacus, ultricies at venenatis laoreet, sodales a ante. Etiam vestibulum pellentesque felis, eget. ";
echo "String was: $string<br><br>";
// Alles buiten de letters/getallen eruit halen
$string = ereg_replace("[^a-zA-Z0-9 ]", "", $string);
echo "String werd: $string<br><br>";
$woorden = explode(" ", $string);
$ples = array();
foreach($woorden as $woord) {
$woord = strtolower($woord);
$letter = substr($woord, 0, 1);
if(strlen($letter) == 1) {
if(!array_key_exists($letter, $ples)) $ples[$letter] = array();
$ples[$letter][] = $woord;
}
}
ksort($ples);
foreach($ples as $key => $value) {
sort($ples[$key]);
}
echo '<pre>';
print_r($ples);
echo '</pre>';
?>
array_key_exists( , $ples);
wat dus neerkomt op array_key_exists(null, $ples); en dat mag niet bij die functie.
OChja natuurlijk wat stom van me
Aanvullend bericht:
Je bent hartelijke bedankt!
Echt man alleen had ik het even niet aangekunnen: last van 2u noem ik dat.
De bedoeling is dus dat alles word weergeven netjes met een Grote letter A en alles A's er onder :)
En mogelijk dit te gebruiken op links.Laatst aangepast door gast26686 : 30-01-2011 om 01:02 Reden: Automatisch samengevoegd.
-
30-01-2011, 01:04 #14
- Berichten
- 1.899
- Lid sinds
- 18 Jaar
Re: Verwarring 3d arrays
Als je grote letter A wilt tonen, moet je nog even doen;
$letter = strtoupper($letter);
vlak voordat we het stukje code oproepen waar staat $ples[$letter] = array();
-
30-01-2011, 01:09 #15
- Berichten
- 162
- Lid sinds
- 15 Jaar
Re: Verwarring 3d arrays
Jups :)
NU nog iets, want ben nog steeds verward.
wil de $key opgeven.
daarna pas alle values hoe doe ik dit het beste, ben er nog niet uit hoor.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic