Что я хочу сделать, это удалить -
тире от ключа в моем массиве, а затем восстановить его вместе с пробелом вместо -
,
Образец массива
$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)]);
Но я знаю, что не получит все дочерние массивы в массиве верхнего уровня.
Не уверен, как это сделать.
Помощь приветствуется!
Ну, поскольку вы не можете ссылаться на ключи, вы можете просто перенести их на новый, а затем просто заменить эти ключи (при условии, что структура исправлена):
$new_pages = array();
foreach($pages as $key => $values) {
foreach($values as $k => $v) {
$k = str_replace('-', ' ', $k);
$new_pages[$key][$k] = $v;
}
}
Других решений пока нет …