controleren of 2 values bestaan in een array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Developer Industriële Automatiseri

Raster levert slimme industriële automatiseringsoplossingen aan nationale en internationale opdrachtgevers voor wie procesveiligheid van groot belang is. We zijn sterk in spraakmakende one-off projecten in de productie- en procesautomatisering waarbij extreme engineering een terugkerend thema is. Daarbij kun je denken aan: Het veilig en duurzaam ontwerpen, plaatsen én weer opruimen van olie- en gas- productieplatformen De transformatie van de olie- en gasmarkt naar windenergie op zee Het oplossen van lokale parkeerproblematiek in dichtbevolkte steden Het cyber secure maken van kritische industriële productieomgevingen Het op afstand veilig produceren door onbemande platformen op de Noordzee Het succesvol lanceren van satellieten in de

Bekijk vacature »

Sietsko Bos

Sietsko Bos

27/05/2020 14:04:22
Quote Anchor link
Hoi,

Ik probeer 4 unieke verbindingen in een array te krijgen maar denk dat d econtrole niet goed werkt.
Iemand een idee wat er fout gaat?

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
28
29
<?php

$_SESSION
['antwoorden'] = array ();

function
in_array_r($needle, $haystack, $strict = false) {
    foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
            return true;
        }
    }

    return false;
}


do {
    
    do {
            
        $source = rand (0, 3);
        $target = rand (0, 3);
            
        $verbinding = (array("source" => $source, "target" => $target));
    
    }
while (in_array_r($verbinding, $_SESSION['antwoorden']) === true);

    // zet de verbindingen in de antwoorden array
    array_push ($_SESSION['antwoorden'], $verbinding);
        
}
while (count($_SESSION['antwoorden']) < 4);
?>
Gewijzigd op 27/05/2020 14:05:21 door Sietsko Bos
 
PHP hulp

PHP hulp

08/12/2021 16:59:09
 
- Ariën -
Beheerder

- Ariën -

27/05/2020 14:20:49
Quote Anchor link
Misschien is het handig om wat meer te vertellen wat er fout gaat, wat je invoert, en wat er gebeurt, en wat je verwacht?

Tot nu toe is dit nog best een karig 'glazen bol' topic.
 
Adoptive Solution

Adoptive Solution

27/05/2020 14:25:42
Quote Anchor link
Zet foutmeldingen aan en je krijgt paginas foutmeldingen.

In plaats van $_SESSION['antwoorden'] gebruik $antwoorden = [];

Dan voor het resultaat :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
echo '<pre>' . print_r( $antwoorden , TRUE ) . '<pre>';


Toevoeging op 27/05/2020 14:28:14:

Zo dus

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
$antwoorden
= [];

do {
    do {
        $source = rand (0, 3);
        $target = rand (0, 3);

        $verbinding = ( array( "source" => $source, "target" => $target) );
    }
while ( in_array_r( $verbinding, $antwoorden ) === true );

    // zet de verbindingen in de antwoorden array
    array_push ( $antwoorden, $verbinding );
        
}
while ( count( $antwoorden ) < 4 );

echo '<pre>' . print_r( $antwoorden , TRUE ) . '<pre>';

?>
 
Sietsko Bos

Sietsko Bos

27/05/2020 14:39:51
Quote Anchor link
Wat maakt het verschil met $antwoorden = []; en $_SESSION['antwoorden'] ????
 
Adoptive Solution

Adoptive Solution

27/05/2020 14:45:23
Quote Anchor link
Omdat de stille hint niet doorkwam.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3

Warning: Invalid argument supplied for foreach() in checkneedle.php on line 4 Warning: array_push() expects parameter 1 to be array, null given in checkneedle.php on line 26 Warning: count(): Parameter must be an array or an object that implements Countable in checkneedle.php on line 28 Warning: Invalid argument supplied for foreach() in checkneedle.php on line 4 Warning: array_push() expects parameter 1 to be array, null given in checkneedle.php on line 26 Warning: count(): Parameter must be an array or an object that implements Countable in checkneedle.php on line 28 Warning: Invalid argument supplied for foreach() in checkneedle.php on line 4 Warning: array_push() expects parameter 1 to be array, null given in checkneedle.php on line 26 Warning: count(): Parameter must be an array or an object that implements Countable in checkneedle.php on line 28 Warning: Invalid argument supplied for foreach() in checkneedle.php on line 4 Warning: array_push() expects parameter 1 to be array, null given in checkneedle.php on line 26 Warning: count(): Parameter must be an array or an object that implements Countable in checkneedle.php on line 28 Warning: Invalid argument supplied for foreach() in checkneedle.php on line 4 Warning: array_push() expects parameter 1 to be ar.....
Pagina na pagina
Gewijzigd op 27/05/2020 14:46:26 door Adoptive Solution
 
Sietsko Bos

Sietsko Bos

27/05/2020 14:54:23
Quote Anchor link
Wel vreemd, want ik heb deze functie vaker gebruikt zonder problemen.

Nog steeds zijn de 4 verbindingen niet uniek.

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
Array
(
    [0] => Array
        (
            [source] => 3
            [target] => 0
        )

    [1] => Array
        (
            [source] => 0
            [target] => 2
        )

    [2] => Array
        (
            [source] => 1
            [target] => 1
        )

    [3] => Array
        (
            [source] => 3
            [target] => 1
        )

)

2x een source 3 en target 1
Gewijzigd op 27/05/2020 15:03:33 door Sietsko Bos
 
Thomas van den Heuvel

Thomas van den Heuvel

27/05/2020 15:44:39
Quote Anchor link
Dit is prima te doen met standaard array-functies?
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
<?php
$source
= range(0, 3);
$target = range(0, 3);
shuffle($source);
shuffle($target);

$data = array();
foreach ($source as $k => $v) {
    $data[] = array(
        'source' => $v,
        'target' => $target[$k],
    );
}


echo '<pre>'.print_r($data, true).'</pre>';
?>
 
Sietsko Bos

Sietsko Bos

27/05/2020 16:45:19
Quote Anchor link
Thanks Thomas, weer wat geleerd dat er meerdere wegen naar een goed script leiden :)
 



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.