Я не понимаю, почему foreach
возвращает только первое значение из массива.Foreach возвращает только первое значение из массива
function __EachReturn($Array){
foreach($Array as $Key=>$Arr){
$List = $Arr;
}
return $List;
}
Это моя полная функция:
// Styled Function
function Returnstyled($Style){
$Styled = array();
function __EachReturn($Array){
foreach($Array as $Key=>$Arr){
$List = $Arr;
}
return $List;
}
foreach($Style as $Key=>$Items){
$Items = __EachReturn($Items);
switch($Key){
case 'CSS':
$Styled[] = sprintf('<link rel="%s" href="%s" type="%s">',$Items['rel'],$Items['href'],$Items['type']);
break;
case 'JS':
$Styled[] = sprintf('<script src="%s" integrity="%s" crossorigin="%s"></script>',$Items['src'],$Items['integrity'],$Items['crossorigin']);
break;
}
}
return $Styled;
}
Перед тем, как я использую так:
function Returnstyled($Style){
$Styled = array();
foreach($Style as $Key=>$Items){
switch($Key){
case 'CSS':
foreach($Items as $Item){
$Styled[] = sprintf('<link rel="%s" href="%s" type="%s">',$Item['rel'],$Item['href'],$Item['type']);
}
break;
case 'JS':
foreach($Items as $Item){
$Styled[] = sprintf('<script src="%s" integrity="%s" crossorigin="%s"></script>',$Item['src'],$Item['integrity'],$Item['crossorigin']);
}
break;
}
}
return $Styled;
}
Так что я сделал. Я не хочу использовать foreach
внутри switch case couple of time
, поэтому я пытаюсь создать вложенную функцию. Я создаю внутри нее еще одну функцию EeachReturn
, но это только возврат сначала из массива.
Должен быть возвращен полный массив.
В каждом исполнении цикла 'foreach' вы переопределяете значение' $ List'. Вам нужно объявить '$ List' как массив и использовать' $ List [] = $ Arr; 'в вашем' foreach'. – roberto06
Тем не менее, я не понимаю точку этой функции, которая преобразует массив в ... массив. – roberto06
почему эта функция, вы можете использовать foreach напрямую –