Взорвите мой массив, удалите тире из ключа, затем взорвите его вместе

Что я хочу сделать, это удалить - тире от ключа в моем массиве, а затем восстановить его вместе с пробелом вместо -,

Образец массива

$pages = array(

'Administrator' => array(
'network-administrator' => array('title' => 'Network '.$li_1, 'description' => 'Network '.$li_1.' '.$temp_content, 'post' => '<p>Network '.$li_1.' '.$temp_content.'.</p>'),
'database administrator' => array('title' => 'Database '.$li_1, 'description' => 'Database '.$li_1.' '.$temp_content, 'post' => '<p>Database '.$li_1.' '.$temp_content.'.</p>'),
),

'Analyst' => array(
'business systems analyst' => array('title' => 'Business Systems '.$li_2, 'description' => 'Business Systems '.$li_2.' '.$temp_content, 'post' => '<p>Business Systems '.$li_2.' '.$temp_content.'.</p>'),
'data-analyst' => array('title' => 'Data '.$li_2, 'description' => 'Data '.$li_2.' '.$temp_content, 'post' => '<p>Data '.$li_2.' '.$temp_content.'.</p>'),
),

);

Как вы можете видеть, есть тире - в некоторых из ключей. У некоторых уже есть пробелы. Те, у которых есть тире, должны быть заменены пробелами.

Я знаю, это звучит странно, «почему бы просто не жестко закодировать их все с пробелами», верно? Ну, мне нужны оба массива для проверки условий в моих php-скриптах.

Я не уверен, как можно взорвать массив, убрать тире и затем снова сжать его.

Я думаю, что это будет что-то вроде этого.

explode('-', $pages[ucfirst($occupation)];

затем взорвать

implode(' ', $pages[ucfirst($occupation)]);

Но я знаю, что не получит все дочерние массивы в массиве верхнего уровня.

Не уверен, как это сделать.

Помощь приветствуется!

1

Решение

Ну, поскольку вы не можете ссылаться на ключи, вы можете просто перенести их на новый, а затем просто заменить эти ключи (при условии, что структура исправлена):

$new_pages = array();
foreach($pages as $key => $values) {
foreach($values as $k => $v) {
$k = str_replace('-', ' ', $k);
$new_pages[$key][$k] = $v;
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]