Как сделать универсальную версию моей функции с неограниченным количеством «ключей». См. Функцию ниже. Это макет другой функции, которую я хочу использовать. Но я застрял. я использовал switch просто чтобы жестко закодировать фактический результат, который мне нужен. Так что это просто для иллюстрации проблемы. Простите друзья, я не лучший программист 🙂
<?php
function get_definition( $literal_key = 'k0.k1.k2', $val="value", $literal_sep = '.' )
{
$keys = explode( $literal_sep, $literal_key ); // ['k0', 'k1', 'k2']
switch ( count( $keys ) )
{
case 1:
return [ $keys[ 0 ] => $val ]; // Array ( [k0] => {val} )
case 2:
return [ $keys[ 0 ] => [ $keys[ 1 ] => $val ] ]; // Array ( [k0] => Array ( [k1] => {val} ) )
case 3:
return [ $keys[ 0 ] => [ $keys[ 1 ] => [ $keys[ 2 ] => $val ] ] ]; // Array ( [k0] => Array ( [k1] => Array ( [k2] => {val} ) ) )
}
}
print_r( get_definition() ); // Array ( [k0] => Array ( [k1] => Array ( [k2] => value ) ) )
print_r( get_definition( 'key.subkey' ) ); // Array ( [key] => Array ( [subkey] => value ) )
print_r( get_definition( 'single_key', 'custom_value' ) ); // Array ( [single_key] => custom_value )
print_r( get_definition( '0.1.2.3.4' ) ); // too much keys
![Сделать функцию универсальной [closed] TheFAQ.ru](https://thefaq.ru/wp-content/uploads/2023/01/logo-250.png)