array_search in zweidimensionalem Array
Hallo,
ich versuche in einem zweidimensionalen Array doppelte Einträge zu
verhindern:
$Zelle[$x][$y]=0;
do {
$dummy=rand(2,9);
$key=array_search($dummy,$Zelle);
} while ($key<>'');
$Zelle[$x][$y]=$dummy;
Aber irgendwie kommen die doch vor. Wo ist mein Denkfehler?
--
Stephan
Re: array_search in zweidimensionalem Array
Stephan Dreisbach schrieb:
> $key=3Darray_search($dummy,$Zelle);
> Aber irgendwie kommen die doch vor. Wo ist mein Denkfehler?
Du vergleichst eine Zahl mit einem Array.
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: array_search in zweidimensionalem Array
Niels Braczek <nbraczek [at] freenet.de> schrieb:
>Stephan Dreisbach schrieb:
>
>> $key=array_search($dummy,$Zelle);
>> Aber irgendwie kommen die doch vor. Wo ist mein Denkfehler?
>
>Du vergleichst eine Zahl mit einem Array.
Verstehe ich nicht: Ich denke, ich suche eine Zahl, ob die bereits
_in_ einem Array vorkommt.
Re: array_search in zweidimensionalem Array
Stephan Dreisbach schrieb:
> Niels Braczek <nbraczek [at] freenet.de> schrieb:
>
>>Stephan Dreisbach schrieb:
>>
>>> $key=3Darray_search($dummy,$Zelle);
>>> Aber irgendwie kommen die doch vor. Wo ist mein Denkfehler?
>>
>>Du vergleichst eine Zahl mit einem Array.
>
> Verstehe ich nicht: Ich denke, ich suche eine Zahl, ob die bereits
> _in_ einem Array vorkommt.
$Zelle ist aber ein Array, dessen Elemente Arrays sind und keine Zahlen.
MfG
Niels
--
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------
Re: array_search in zweidimensionalem Array
Stephan Dreisbach schrieb:
> ich versuche in einem zweidimensionalen Array doppelte Einträge zu
> verhindern:
>
> $Zelle[$x][$y]=0;
> do {
> $dummy=rand(2,9);
> $key=array_search($dummy,$Zelle);
> } while ($key<>'');
> $Zelle[$x][$y]=$dummy;
>
> Aber irgendwie kommen die doch vor. Wo ist mein Denkfehler?
Du suchst in einem _mehrdimensionalen_ Array. PHP versteht dieses als
ein Array aus Arrays. array_search() durchsucht aber nur die _erste_
Ebene, vergleicht also die gesuchte Zahl mit den dort vorhandenen Arrays.
Wenn Du (rekursiv) durch alle Ebenen suchen willst, musst Du Dir selber
eine entsprechende Funktion bauen.
Im Übrigen dürfte in_array() für Deinen Zweck besser geeignet sein, löst
aber Dein eigentliches Problem auch nicht.
Gruß. Claus
Re: array_search in zweidimensionalem Array
Claus Reibenstein <4spammersonly [at] web.de> schrieb:
>Stephan Dreisbach schrieb:
>
[..]
>
>Du suchst in einem _mehrdimensionalen_ Array. PHP versteht dieses als
>ein Array aus Arrays. array_search() durchsucht aber nur die _erste_
>Ebene, vergleicht also die gesuchte Zahl mit den dort vorhandenen Arrays.
Jetzt verstanden, danke.
>
>Wenn Du (rekursiv) durch alle Ebenen suchen willst, musst Du Dir selber
>eine entsprechende Funktion bauen.
Habe ich gemacht und funktioniert.
--
Stephan