CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.
Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …
$arr['a'] = array('1');
$arr['b'] = array('2');
$arr['c'] = array('3');
$arr['d'] = array('4');
$arr['b']['a'] = array('1');
$arr['b']['b'] = array('2');
$arr['b']['b']['a'] = array('1');
$arr['b']['b']['b'] = array('1');
a když bude
$dis = array('b');
tak potřebuji získat hodnotu z
$arr['b']
a když bude
$dis = array('b', 'b');
tak potřebuji získat hodnotu z
$arr['b']['b']
a když bude
$dis = array('b', 'b', 'b');
tak potřebuji získat hodnotu z
$arr['b']['b']['b']
atd.. Vždy znám jen hloubku toho vnoření, což je počet klíčů v poli $dis. Děkuji za případnou pomoc
$arr = array('a' => array('b' => array('c' => 'Hello')));
$path = array('a', 'b', 'c');
function walkPath($arr, $path) {
$p = & $arr;
foreach ($path as $n) {
if (array_key_exists($n, $p)) {
$p = & $p[$n];
} else {
throw new \InvalidArgumentException('Invalid path.');
}
}
return $p;
}
// Toto by melo vypsat 'Hello'
echo walkPath($arr, $path), "\n";
Potřebuji vypsat vždy všechny, ne jen ten poslední, čili
a ab abcDěkuji
$arr = array('a' => array('b' => array('c' => 'Hello')));
není totžné s tím co potřebuji
$arr = array();
$arr['a'] = array('a');
$arr['a']['b'] = array('ab');
$arr['a']['b']['c'] = array('abc');
$arr['a'] buď může obsahovat array('a') (2. řádek) nebo může obsahovat array('b' => array('ab')) (3. řádek).
$arr = array('a' => array('b' => array('c' => 'Hello')));
je totéž jako:
$arr = array(); $arr['a']['b']['c'] = 'Hello';Pokud chceš mít v tom stromu hodnoty i jinde než na listech, tak musíš buď zdvojnásobit vrstvy, nebo určit speciální klíč pro hodnoty:
$arr = array(); $arr['a']['#'] = 'a'; $arr['a']['b']['#'] = 'ab'; $arr['a']['b']['c']['#'] = 'abc';Pak v kterémkoliv vrcholu budeš mít k dispozici hodnotu pod klíčem '#'. Tedy celý strom bude vypadat takto -- viz příloha. Ale je to takové ošklivé, i když vcelku efektivní.
$arr = array();
$arr['a'] = array('FOO' => 'a', 'BAR' => 'a2');
$arr['a']['b'] = array('FOO' => 'ab', 'BAR' => 'ab2');
$arr['a']['b']['c'] = array('FOO' => 'abc', 'BAR' => 'abc2');
$dis = array('a', 'b', 'c');
a potřebuji nadefinovat takové nové pole pro další práci...
$newarr = array();
$newarr['a'] = array('FOO' => 'a', 'BAR' => 'a2');
$newarr['b'] = array('FOO' => 'ab', 'BAR' => 'ab2');
$newarr['c'] = array('FOO' => 'abc', 'BAR' => 'abc2');
a ještě výsledky
echo $newarr['a']['FOO']; //a echo $newarr['a']['BAR']; //a2 echo $newarr['b']['FOO']; //ab echo $newarr['b']['BAR']; //ab2 echo $newarr['c']['FOO']; //abc echo $newarr['c']['BAR']; //abc2Je to lepší ? Díky
$dis = array('a', 'b', 'c');
V systému je mimo jiné takový kousek pole
$arr = array();
$arr['a'] = array('FOO' => 'a', 'BAR' => 'a2');
$arr['a']['b'] = array('FOO' => 'ab', 'BAR' => 'ab2');
$arr['a']['b']['c'] = array('FOO' => 'abc', 'BAR' => 'abc2');
Takze vlastne mate pole:
Array ( [a] => Array ( [FOO] => a [BAR] => a2 [b] => Array ( [FOO] => ab [BAR] => ab2 [c] => Array ( [FOO] => abc [BAR] => abc2 ) ) ) )Sice nevidim dovod takeho pouzitia, ale potom nieco taketo by to mohlo generovat:
$dis = array('a', 'b', 'c');
$newarr = array(); $tmp = $arr;
foreach($dis as $k) {
$newarr[$k] = array_intersect_key($tmp[$k], array('FOO' => 0, 'BAR' => 0));
// $newarr[$k] = array('FOO' => $tmp[$k]['FOO'], 'BAR' => $tmp[$k]['BAR']); //alebo takto
$tmp = $tmp[$k];
}
print_r($newarr);
Tiskni
Sdílej: