Diskuze: Prerobenie array
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zavolej na ty kolekci mapWithKeys s callbackem function($variable) {
Return [$variable->moduleId => $variable->moduleName}
Tohle je dost imperativní řešení, zkus array_column a něco takového:
array_column($pole, 'module_name', 'module_id');
Spis by si mel precist API ke kolekcim z laravelu. Na tohle je tam metoda
To ze na to ma laravel metodu, neznamena ze je rychlejsi.
Já tedy nejsem díkybohu péhápkář už asi 10 let, ale nemá náhodou PHPko něco jako array_map() ?
<?php
function mapFce($i)
{
return($i->module_id);
}
$newArr = array_map("mapFce",$old));
?>
Omlouvám se, pokud jsem řekl hloupost Ale z mého pohledu jde o přemapování jednoho pole na druhé takže klasika (.map() v js, .select() v .NET, transform v Jave)
A nebo třeba takto:
$pairs = array_combine(
array_map(function (\stdClass $row) {
return $row->module_id;
}, $collection->all()),
array_map(function (\stdClass $row) {
return $row->module_name;
}, $collection->all())
);
, základy PHP
To sice jo, ale nebudeš mít klíče, který tazatel požaduje.
Aha, už chápu co pan požaduje tech klíčů na základě ID jsem si nevsimnul.
Zobrazeno 13 zpráv z 13.