Я тоже не нахожу примеры полезными. Вы не можете решить две проблемы одновременно, когда математика вовлечена, ваш ум переключается между двумя проблемами. Хватит говорить
Пример:
У меня есть функция, где я взрываю строки в массив на основе :
разделителя.
public function explodeString($string)
{
return explode(":", $string);
}
У меня есть другая функция, где я принимаю строки в качестве ввода
public function doRec()
{
$strings = [
'no:go',
'hello:world',
'nested' => [
'iam:good',
'bad:array',
'bad:how',
'bad:about',
]
];
$response = [];
foreach ($strings as $string) {
array_push($response,$this->explodeString($string));
}
return $response;
}
Проблема в том, что у моего ввода есть вложенный массив, а моя explodeString
функция получает тип string
. Я могу переписать некоторый код в функции explodeString
, чтобы приспособиться к этому, но мне все еще нужна та же функция для выполнения той же операции над моей строкой. Вот где я могу вызвать метод recursively
внутри. Итак, вот последняя функция explodeString
с рекурсией.
public function explodeString($string)
{
if (is_array($string)) {
$combine = [];
foreach ($string as $str) {
array_push($combine, $this->explodeString($str));
}
return $combine;
}
return explode(":", $string);
}