Na Kickstarteru běží kampaň na podporu hloupého (jenom volání a SMS) tlačítkového DIY telefonu MAKERphone 2.0 od společnosti CircuitMess postaveného na ESP32-S3 a volitelně také s hodinkami MAKERband. S možností psaní vlastních aplikací. S volitelnými HW rozšiřujícími moduly.
Byla vydána nová verze 10.7 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Přibyly balíčky HomeBox a Scrypted.
OpenRGB (GitLab) dospěl do verze 1.0 (YouTube). OpenRGB (dříve OpenAuraSDK) je svobodný multiplatformní software umožňující nastavení podsvícení celé řady různých „herních“ komponent a periferií.
Dnes startuje prodej headsetu Steam Frame. Počínaje dneškem se tedy můžete zapsat na seznam pro jeden z následujících modelů: Steam Frame 256 GB za 1 049 EUR a Steam Frame 1 TB za 1 279 EUR.
Vládní CERT upozorňuje na kritickou zranitelnost v GitLab Community Edition (CE) a Enterprise Edition (EE). Zranitelnost CVE-2026-85706 typu path traversal v Repository Commits API dosahuje skóre CVSS 10.0. Kvůli nedostatečnému omezení cest a chybějícímu vynucení autentizace může za určitých podmínek neautentizovaný útočník číst libovolné soubory ze serveru GitLab, a získat tak přístup k citlivým datům a konfiguraci instance.
Linux může běžet nativně na ESP32-S3 – bez emulace a rovnou s 9,7″ e-paperem.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 7.0.0. Pro sandboxing se na Linuxu nově používá Landlock místo Bubblewrap. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Správce fotografií Shotwell byl vydán ve verzi 33.0 (GitLab). Hlavní novinkou v tomto vydání po dvou letech je přechod na GTK4.
Na YouTube byly publikovány videozáznamy přednášek a na Flickru fotografie z konference EuroPython 2026.
Byl vydán Debian 13.7, tj. sedmá opravná verze Debianu 13 s kódovým názvem Trixie. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
$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: