abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:11 | Nová verze

    Open source modální textový editor Helix, inspirovaný editory Vim, Neovim či Kakoune, byl vydán ve verzi 25.07. Přehled novinek se záznamy terminálových sezení v asciinema v oznámení na webu. Detailně v CHANGELOGu na GitHubu.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | IT novinky

    Americký výrobce čipů Nvidia získal od vlády prezidenta Donalda Trumpa souhlas s prodejem svých pokročilých počítačových čipů používaných k vývoji umělé inteligence (AI) H20 do Číny. Prodej těchto čipů speciálně upravených pro čínský trh by tak mohl být brzy obnoven, uvedla firma na svém blogu. Americká vláda zakázala prodej v dubnu, v době eskalace obchodního sporu mezi oběma zeměmi. Tehdy to zdůvodnila obavami, že by čipy mohla využívat čínská armáda.

    Ladislav Hagara | Komentářů: 6
    včera 17:22 | Nová verze

    3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    14.7. 22:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    14.7. 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    14.7. 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 28
    14.7. 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 22
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 17
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 399 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Problém se scriptem

    29.7.2013 16:23 Orlando
    Problém se scriptem
    Přečteno: 357×
    Ahoj, nevidí někdo chybu? Párám se s tím už 3 hodiny a nemůžu to rozchodit :-( Díky za pomoc ;-)
    <?php
    $arr = array('foo1' => array('aaa', '111', '0', true,  'AAA'),
                 'foo2' => array('bbb', '111', '1', true,  'CCC'),
                 'foo3' => array('bbb', '111', '0', false, 'AAA'));
    
    if($arr['foo2'][0] == 'bbb' AND $arr['foo2'][1] == 111 AND $arr['foo2'][2] == 1 AND $arr['foo2'][3] == true AND $arr['foo2'][4] == 'CCC')
     echo "existuje";
    else
     echo "neexistuje";
    ?>

    Odpovědi

    Tarmaq avatar 29.7.2013 16:30 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    v cem je presne chyba? Mne to vypise existuje
    Don't panic!
    29.7.2013 16:32 DarkKnight | skóre: 26
    Rozbalit Rozbalit vše Re: Problém se scriptem
    problem muze byt max v 111 vs '111', ale jelikoz pouziva == a ne === (kde se kontroluje i typ), tak to je v tomto pripade celkem jedno
    29.7.2013 16:33 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Jakou verzi php máš prosím?
    Tarmaq avatar 29.7.2013 16:40 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    vyzkouseno ve techto verzich a vsude funguje:
    5.2.10
    5.3.3
    5.3.10
    5.3.17
    5.4.16
    
    Don't panic!
    29.7.2013 16:33 Kit
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Mně to funguje i když tam podivně porovnáváš rozdílné datové typy. O co se vlastně snažíš?
    Tarmaq avatar 29.7.2013 16:36 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    jinak tak nejak asi tusim odkud vitr vane.. pozor na logicke operatory AND/OR. Chovaji se mozna jinak nez predpokladas:
    $e = false || true;
    $f = false or true;
    $g = true && false;
    $h = true and false;
    var_dump($e, $f, $g, $h);
    
    vypise:
    bool(true)
    bool(false)
    bool(false)
    bool(true)
    
    vice info v dokumentaci
    Don't panic!
    29.7.2013 16:42 Kit
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Prostě zapomněl vložit závorky a proto se mu to chová jinak než předpokládal.
    29.7.2013 16:46 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Závorkama to není, jde o to, že to pole obsahuje více stejných klíčů, v tomto případě foo2 a nevím proč to vyhodnotí podmínka jako, že to neexistuje :-(
    29.7.2013 16:43 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Jejda ja jsem blb, posílám opravu, zapoměl jsem tam vložit ten poslední řádek, kvůli kterému to nejede ;) OMLUVA!
    <?php
    $arr = array('foo1' => array('aaa', '111', '0', true,  'AAA'),
                 'foo2' => array('bbb', '111', '1', true,  'CCC'),
                 'foo3' => array('bbb', '111', '0', false, 'AAA'),
                 'foo2' => array('bbb', '100', '1', true,  'CCC'));
    
    if($arr['foo2'][0] == 'bbb' AND $arr['foo2'][1] == 111 AND $arr['foo2'][2] == 1 AND $arr['foo2'][3] == true AND $arr['foo2'][4] == 'CCC')
     echo "existuje";
    else
     echo "neexistuje";
    ?>
    Tarmaq avatar 29.7.2013 16:46 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    nemuzes mit jeden index vicekrat, resp. muzes, ale prvni se zahodi ;] dej si tam var_dump toho pole a uvidis:
    array(3) {
      ["foo1"]=>
      array(5) {
        [0]=>
        string(3) "aaa"
        [1]=>
        string(3) "111"
        [2]=>
        string(1) "0"
        [3]=>
        bool(true)
        [4]=>
        string(3) "AAA"
      }
      ["foo2"]=>
      array(5) {
        [0]=>
        string(3) "bbb"
        [1]=>
        string(3) "100"
        [2]=>
        string(1) "1"
        [3]=>
        bool(true)
        [4]=>
        string(3) "CCC"
      }
      ["foo3"]=>
      array(5) {
        [0]=>
        string(3) "bbb"
        [1]=>
        string(3) "111"
        [2]=>
        string(1) "0"
        [3]=>
        bool(false)
        [4]=>
        string(3) "AAA"
      }
    }
    
    Don't panic!
    29.7.2013 16:50 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Už to vidím, to tedy znamená, že by to šlo udělat ale ta podmínka by musela být třeba v nějakém cyklu? Nebo to blbě chápu? Díky
    Tarmaq avatar 29.7.2013 16:54 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Nejlepsi by bylo, kdybys napsal co resis za problem. Tohle vypada na spatnej navrh.
    Don't panic!
    29.7.2013 16:57 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    No mám nějaké názvy knih (foo1, foo2, foo3 atd..) ale každý někdy se jmenuje kniha stejně ale má jiného třeba spisovatele, datum vydání atd.. Jediné co potřebuji, je zjistit jestli takový údaj v array existuje :(
    29.7.2013 17:01 Kit
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Použij databázi.
    Tarmaq avatar 29.7.2013 17:01 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    v tom pripade potrebujes mit indexy v poli podle neceho jineho nez je nazev knihy, mel by to byt unikatni identifikator (ISBN, nejaky umely klic, ..)
    Jinak to mas opravdu data takhle natvrdo v PHP? Nebylo by lepsi to soupnout do DB? I to filtrovani by jsi pak mohl delat primo v SQL, jestli to teda chapu spravne a pokousis se filtrovat zaznamy podle nejakych vstupnich parametru..
    Don't panic!
    29.7.2013 17:04 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Ano, chápete to dobře. Toho jsem se právě bál, že to tak dopadne :-( A nešlo by to načítat to pole index po indexu?
    Tarmaq avatar 29.7.2013 17:12 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    jak index po indexu? Ve chvili kdy je to pole sestrojeno uz je tam prvek s indexem foo2 jen jeden. Kde jsou fyzicky ty informace o tech knihach?
    Don't panic!
    29.7.2013 17:33 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Aha, tak to pak postrádá smysl. Informace o knihách jsou přímo v tom poli
    29.7.2013 17:20 Kit
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Šlo. Třeba takto:
    $arr = array();
    $arr[] = array('foo1', 'aaa', '111', '0', true,  'AAA');
    $arr[] = array('foo2', 'bbb', '111', '1', true,  'CCC');
    $arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
    $arr[] = array('foo2', 'bbb', '100', '1', true,  'CCC');
    
    29.7.2013 17:33 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Hm, a poradíte, jak by vypadala ta podmínka? To fakt nedám :-(
    Tarmaq avatar 29.7.2013 17:41 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Napriklad takto:
    $arr = array();
    $arr[] = array('foo1', 'aaa', '111', '0', true,  'AAA');
    $arr[] = array('foo2', 'bbb', '111', '1', true,  'CCC');
    $arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
    $arr[] = array('foo2', 'bbb', '100', '1', true,  'CCC');
    
    $exists = false;
    foreach ($arr as $book) {
      if ($book[0] == 'foo2' && $book[1] == 'bbb' && $book[2] == '111' && $book[3] == '1' && $book[4] == true && $book[5] == 'CCC') {
        $exists = true;
        break;
      }
    }
    echo $exists ? "existuje" : "neexistuje";
    
    Don't panic!
    29.7.2013 17:06 Kit
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Dobrým kandidátem pro primární index by mohlo být inventární číslo knihy. Vše ostatní jsou jen atributy.
    29.7.2013 18:11 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Díky vám za pomoc, vypadá to, že to bude ok ;-)
    29.7.2013 18:40 Orlando
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Ještě jedna věc, jde přímo získat tato hodnota (111)
    $arr = array();
    $arr[] = array('foo1', 'aaa', '111', '0', true,  'AAA');
    $arr[] = array('foo2', 'bbb', '--->111', '1', true,  'CCC');
    $arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
    $arr[] = array('foo2', 'bbb', '100', '1', true,  'CCC');
    když znám (foo2) ?
    $arr = array();
    $arr[] = array('foo1', 'aaa', '111', '0', true,  'AAA');
    $arr[] = array('--->foo2', 'bbb', '111', '1', true,  'CCC');
    $arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
    $arr[] = array('foo2', 'bbb', '100', '1', true,  'CCC');
    nebo se to musí vždy projíždět celý cyklem? Díky
    Tarmaq avatar 29.7.2013 18:58 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Ano, v takovemto poli je na to potreba cyklus, navic na zaklade ceho by ti to melo vratit 111 a ne 100?

    Jinak jak uz bylo receno driv, uplne nejlip bys udelal, kdybys data presunul do databaze. Potom by stacilo odeslat na db dotaz typu:
    SELECT col2
    FROM books
    WHERE title = 'foo2'
      AND col1 = 'bbb'
      AND col3 = 1
      AND col4 = 1
      AND col5 = 'CCC'
    
    nazvy sloupcu by to samozrejme chtelo smysluplnejsi, ale nevim co ty hodnoty znamenaj, tak jsem uvedl tyhle..
    Don't panic!
    Tarmaq avatar 29.7.2013 19:02 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Problém se scriptem
    krome projizdeni cyklem existuje jeste tahle moznost:
    $selectedBooks = array_filter($arr, function($book)
    {
        return $book[0] == 'foo2'
            && $book[1] == 'bbb'
            && $book[2] == '111'
            && $book[3] == '1'
            && $book[4] == true
            && $book[5] == 'CCC'
        ;
    });
    
    Don't panic!
    29.7.2013 19:15 Kit
    Rozbalit Rozbalit vše Re: Problém se scriptem
    Zkus tohle:
    $arr = array();
    $arr[] = array('foo1', 'aaa', '111', '0', true,  'AAA');
    $arr[] = array('foo2', 'bbb', '111', '1', true,  'CCC');
    $arr[] = array('foo3', 'bbb', '111', '0', false, 'AAA');
    $arr[] = array('foo2', 'bbb', '100', '1', true,  'CCC');
    $arr2=array_filter($arr, function($kniha) {return $kniha[0]=='foo2';});
    print_r($arr2);
    
    Najde ti to hledané 2 záznamy a z těch si vybereš příslušné sloupce.

    Pokud však to jsou knihy s atributy 'foo2', 'bbb', '111', '1', true, 'CCC', tak to můžeš udělat jako seznam objektů, se kterým se dá dovádět o něco lépe než s polem polí.

    Opravdu nechceš použít databázi? Je to mnohem praktičtější.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.