in_array bij een array met 2 keys, dus array[x][y]

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wilco de Jong

Wilco de Jong

30/06/2015 20:41:14
Quote Anchor link
Kan iemand mij vertellen hoe een getal kan zoeken in een tabel, die dan weer gevormd wordt door een array.

Stel dat ik het getal 10 wil zoeken in regel 1, dan dacht ik dit te doen door: in_array(10,array[1][]) maar dit werkt niet.
 
PHP hulp

PHP hulp

20/04/2024 00:12:22
 
- SanThe -

- SanThe -

30/06/2015 21:01:45
Quote Anchor link
Als array[1] een array is dan is het in_array(10,array[1]).
Gewijzigd op 30/06/2015 21:13:46 door - SanThe -
 
Wilco de Jong

Wilco de Jong

30/06/2015 21:06:06
Quote Anchor link
- SanThe - op 30/06/2015 21:01:45:
Als array[1] een arraay is dan is het in_array(10,array[1]).


Helaas niet, dan krijg je een parse error: Parse error: syntax error, unexpected ';'

Het is dus eigenlijk een tabel van array[1][1] t/m array[6][6]
Er moet gezocht worden in array[1][1] t/m array[1][6] om het getal in de eerste rij te doorzoeken.


Klopt wel, ik had ronde haken gebruikt --faal--
Gewijzigd op 30/06/2015 21:10:35 door Wilco de Jong
 
Thomas van den Heuvel

Thomas van den Heuvel

30/06/2015 21:06:15
Quote Anchor link
Gebruik isset of array_key_exists. Ingeval van isset moet je passen op null waarden.

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
22
23
24
25
26
27
<?php
$test
= array(
    1 => array(
        10 => null,
        11 => false,
        12 => '',
        13 => 0,
        14 => 'hoi',
    ),
);


?>
<h2>isset</h2><?php
echo (isset($test[1][10]) ? '10 set' : '10 not set').'<br />';
echo (isset($test[1][11]) ? '11 set' : '11 not set').'<br />';
echo (isset($test[1][12]) ? '12 set' : '12 not set').'<br />';
echo (isset($test[1][13]) ? '13 set' : '13 not set').'<br />';
echo (isset($test[1][14]) ? '14 set' : '14 not set').'<br />';
echo (isset($test[1][88]) ? '88 set' : '88 not set').'<br />';

?>
<h2>array_key_exists</h2><?php
echo (array_key_exists(10, $test[1]) ? '10 set' : '10 not set').'<br />';
echo (array_key_exists(11, $test[1]) ? '11 set' : '11 not set').'<br />';
echo (array_key_exists(12, $test[1]) ? '12 set' : '12 not set').'<br />';
echo (array_key_exists(13, $test[1]) ? '13 set' : '13 not set').'<br />';
echo (array_key_exists(14, $test[1]) ? '14 set' : '14 not set').'<br />';
echo (array_key_exists(88, $test[1]) ? '88 set' : '88 not set').'<br />';
?>


EDIT: in_array werkt met values, dus ik weet niet zekker of dat gaat werken.
EDIT2: Als je in een rij/kolom zoekt kan het misschien zinnig zijn om hier een aparte functie/methode voor te schrijven als je vaak moet zoeken. Misschien wil je toelichten waar je dit voor gebruikt idd.
EDIT3: Dan zit je ook een beetje met performance, hangt ook af van hoe vaak je dit gebruikt. in_array is langzamer dan isset/array_key_exists geloof ik, maar werkt verder prima blijkbaar :].
Gewijzigd op 30/06/2015 21:19:40 door Thomas van den Heuvel
 



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.