Разобрать ключ массива с разделителями в многомерный путь к ключуPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Разобрать ключ массива с разделителями в многомерный путь к ключу

Сообщение Anonymous »

Предположим, в моей переменной есть следующая строка:

Код: Выделить всё

$arr['data_|_multilanguage_|_en_|_field'] = 23;
Я хочу преобразовать это в многомерный массив следующим образом:

Код: Выделить всё

$arr['data']['multilanguage']['en']['field'] = 23;
Я выполнил рекурсивную функцию

Код: Выделить всё

foreach ($arr as $outer_key => $outer_value) {

$parts = explode('_|_', $outer_key);

$reference =& $arr;
$final_key = count($parts) - 1;

foreach ($parts as $key => $part) {
if (!$final_key == $key) {

if (empty($reference[$part])) {
$reference[$part] = array();
}

$reference =& $reference[$part];

} else {
$reference[$part] = $arr[$str];
unset($arr[$outer_key]);
}
}
}
Проблема в том, что var_dump показывает, что дочерние элементы являются ссылочными. Есть ли лучший способ?

Подробнее здесь: https://stackoverflow.com/questions/238 ... l-key-path
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»