Likes Likes:  0
Resultaten 1 tot 11 van de 11
Geen
  1. #1
    Shenzou
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Array doorzoeken (leading zeros probleem)

    $id = 000008;
    $check = array(000008, 000009, 000010, 000011, 000014);
    in_array($id, $check);

    Als $id nu 08, 008 of 00000008 is, de functie in_array() zal altijd
    zeggen dat mijn id in de array terug te vinden is. Maar dat wil ik niet!
    Ik wil een exacte match van 000008 die in de array opgezocht wordt en
    enkel dat geval moet true geven en alles met meer of minder nullen moet
    false geven. Hoe los ik dit op?

    Alvast bedankt!

  2. #2
    Operator
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    In article <ft0_g.138949$MZ6.2435174@phobos.telenet-ops.be>,
    Shenzou <black_onion@NOSPAMhotmail.com> writes:
    > $id = 000008;
    > $check = array(000008, 000009, 000010, 000011, 000014);
    > in_array($id, $check);
    >
    > Als $id nu 08, 008 of 00000008 is, de functie in_array() zal altijd
    > zeggen dat mijn id in de array terug te vinden is. Maar dat wil ik niet!
    > Ik wil een exacte match van 000008 die in de array opgezocht wordt en
    > enkel dat geval moet true geven en alles met meer of minder nullen moet
    > false geven. Hoe los ik dit op?
    >
    > Alvast bedankt!


    Door er een string ipv een integer van te maken bijvoorbeeld.

    $id = '000008';
    $check = array('000008', '000009', '000010', '000011', '000014');

  3. #3
    Shenzou
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    Operator wrote:
    >
    > Door er een string ipv een integer van te maken bijvoorbeeld.
    >
    > $id = '000008';
    > $check = array('000008', '000009', '000010', '000011', '000014');


    Aha, ik had al zo een vermoeden. Het lukt mij echter niet.

    $product_id = $_GET["prod"];

    $query = mysql_query("SELECT productId FROM products");
    while ($id = mysql_fetch_object($query))
    $check[] = $id->productId;

    if(isset($product_id) && in_array($product_id, $check))


    Dit had ik dus oorspronkelijk. Maar als ik er

    $product_id = '$_GET["prod"]'; // '' toegevoegd
    $check[] = "$id->productId"; // "" toegevoegd

    van maak dat wil het nog niet werken. Waar ga ik de mist in?

  4. #4
    Operator
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    In article <1j2_g.139112$Ae2.2470016@phobos.telenet-ops.be>,
    Shenzou <black_onion@NOSPAMhotmail.com> writes:
    > Operator wrote:
    >>
    >> Door er een string ipv een integer van te maken bijvoorbeeld.
    >>
    >> $id = '000008';
    >> $check = array('000008', '000009', '000010', '000011', '000014');

    >
    > Aha, ik had al zo een vermoeden. Het lukt mij echter niet.
    >
    > $product_id = $_GET["prod"];
    >
    > $query = mysql_query("SELECT productId FROM products");


    Zorg dat productId van het type CHAR is.

    > while ($id = mysql_fetch_object($query))
    > $check[] = $id->productId;


    Verander dit in een WHERE clause.
    (Ik neem aan dat je best wel een paar products wilt hebben
    en niet je hele geheugen wilt vullen met 000000 t/m 999999)

    > if(isset($product_id) && in_array($product_id, $check))
    >
    >
    > Dit had ik dus oorspronkelijk. Maar als ik er
    >
    > $product_id = '$_GET["prod"]'; // '' toegevoegd


    Ik zou de " en ' van plaats verwisselen...
    .... nee niet echt.
    Ik zou een check functie maken die weet hoe een productId
    er uit moet zien. (6 maal char uit de range 0..9 ? )

    > $check[] = "$id->productId"; // "" toegevoegd
    >
    > van maak dat wil het nog niet werken. Waar ga ik de mist in?


    Bij de analyse fase?

  5. #5
    Branko Collin
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)


    On Fri, 20 Oct 2006 11:21:33 GMT, Shenzou
    <black_onion@NOSPAMhotmail.com> wrote:

    > '$nummer'


    Wat zou dit volgens jou moeten doen?

    Strings en integers zijn verschillende 'type's. Een integer wordt niet
    uitgevuld met nullen, en daarom zijn 8, 08, 008, 0008 enz. hetzelfde.
    '8', '08', '008', '0008' enz. zijn echter allemaal verschillend. Zoals
    Operator al aangaf, kun je daarom het beste strings van integers met
    elkaar vergelijken.

    Het ene type in het andere omzetten heet 'typecast'en. In PHP kan dat
    op heel veel verschillende manieren:

    $string = (integer) $nummer;
    $string = sprintf("%d",$nummer);
    $string = '' . $nummer;
    $string = "$nummer";
    enzovoort.

    Welke methode de beste is hangt af van wat je precies wilt bereiken.
    $string = sprintf("%d",$nummer) zul je bijvoorbeeld gebruiken als je
    formulierwaarden wilt valideren.

    Lees ook:
    <http://www.php.net/manual/nl/language.types.type-juggling.php>
    (helaas nu nog in het Engels).
    --
    branko collin
    Volk van San Theodoros, ik heb U begrepen.

  6. #6
    Shenzou
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    Branko Collin wrote:
    >
    > Welke methode de beste is hangt af van wat je precies wilt bereiken.
    > $string = sprintf("%d",$nummer) zul je bijvoorbeeld gebruiken als je
    > formulierwaarden wilt valideren.
    >
    > Lees ook:
    > <http://www.php.net/manual/nl/language.types.type-juggling.php>
    > (helaas nu nog in het Engels).

    Aha, interessante lectuur.

    Nu, ik ben ondertussen achter de oplossing gekomen. Zowel de elementen
    in mijn array als di eik uit mijn URL plukte waren strings. Bleek mijn
    fout te zitten in de functie in_array. Het moest in_array($product_id,
    $check, true) ipv in_array($product_id, $check). Een kleinigheid met een
    wezenlijk verschil

    Allemaal bedankt voor de hulp, ik heb alleszins weer wat bijgeleerd.

  7. #7
    Rene Pijlman
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    Shenzou:
    >Het moest in_array($product_id, $check, true) ipv in_array($product_id,
    >$check). Een kleinigheid met een wezenlijk verschil


    Yep, leve het onelegante PHP. Had je de interactieve comments in de manual
    niet gelezen? Daarin staat toch duidelijk:

    Beware that "Good morning"==0

    --
    René Pijlman

    Wat wil jij leren? http://www.leren.nl

  8. #8
    Warden Dave
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    "Branko Collin" <collin@xs4all.nl> wrote:

    > Een integer wordt niet uitgevuld met nullen, en daarom zijn
    > 8, 08, 008, 0008 enz. hetzelfde.


    Maar, let op, zo daadwerkelijk geschreven zal ook in PHP 08 ongelijk zijn
    aan 8 (decimaal), omdat 08 (octaal) ongeldig is (het resultaat zal 0
    zijn).

    WD


  9. #9
    Branko Collin
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)


    On Sat, 21 Oct 2006 14:11:55 +0200, "Warden Dave"
    <warden_dave@mnsys.invalid> wrote:

    >"Branko Collin" <collin@xs4all.nl> wrote:
    >
    >> Een integer wordt niet uitgevuld met nullen, en daarom zijn
    >> 8, 08, 008, 0008 enz. hetzelfde.

    >
    >Maar, let op, zo daadwerkelijk geschreven zal ook in PHP 08 ongelijk zijn
    >aan 8 (decimaal), omdat 08 (octaal) ongeldig is (het resultaat zal 0
    >zijn).


    Kijk, dat wist ik weer niet.

    Lijkt me typisch iets waar ik in de toekomst twee, drie uur aan kwijt
    ga zijn. %-}
    --
    branko collin
    Volk van San Theodoros, ik heb U begrepen.

  10. #10
    Rik
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    Branko Collin wrote:
    > On Sat, 21 Oct 2006 14:11:55 +0200, "Warden Dave"
    > <warden_dave@mnsys.invalid> wrote:
    >
    >> "Branko Collin" <collin@xs4all.nl> wrote:
    >>
    >>> Een integer wordt niet uitgevuld met nullen, en daarom zijn
    >>> 8, 08, 008, 0008 enz. hetzelfde.

    >>
    >> Maar, let op, zo daadwerkelijk geschreven zal ook in PHP 08 ongelijk
    >> zijn aan 8 (decimaal), omdat 08 (octaal) ongeldig is (het resultaat
    >> zal 0 zijn).

    >
    > Kijk, dat wist ik weer niet.
    >
    > Lijkt me typisch iets waar ik in de toekomst twee, drie uur aan kwijt
    > ga zijn. %-}


    Yup, voorafgegaan door 0 = octaal, door 0x = hexadecimaal.
    16 = 16
    016 = 14
    0x16 = 22

    Vandaar ook dat je bij chmod bijvoorbeeld 0777 invult in plaats van 777...

    [ongelooflijke nerd-modus]
    Als je het gewent bent, is trouwens octaal of hexadecimaal een stuk
    makkelijk rekenen aangezien het machten van 2 zijn, maar zie dat maar eens
    door (inter)nationaal te voeren...
    [/nerd]
    --
    Rik Wasmus



  11. #11
    Erick T. Barkhuis
    Array doorzoeken (leading zeros probleem)
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: Array doorzoeken (leading zeros probleem)

    Rik:

    > [ongelooflijke nerd-modus]
    > Als je het gewent bent, is trouwens octaal of hexadecimaal een stuk
    > makkelijk rekenen aangezien het machten van 2 zijn, maar zie dat maar eens
    > door (inter)nationaal te voeren...
    > [/nerd]


    [octaal rekenen:]
    Hoe reken jij dan het wisselgeld uit als je EUR 9,75 plus 19% moet
    betalen en je een geeltje^H^H^H^briefje-van-20 euro geeft?

    --
    Erick

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics