爆炸我的阵列,从键中删除破折号,然后将其重新打包

时间:2014-09-27 05:12:58

标签: php arrays explode implode

我想要做的是从我的数组中的键中删除-短划线,然后将其重新组合,并用空格代替-

示例数组

$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>'),
    ),

);

正如您所看到的,某些键中有一个短划线-。有些已经有空格。有破折号的那些需要用空格替换。

我知道这听起来很奇怪,&#34;为什么不用硬盘对它们进行硬编码&#34;对?好吧,我需要两个数组来检查我的PHP脚本中的条件。

我不确定如何开始爆炸阵列,移除破折号然后将其重新组合在一起。

我认为会是这样的。

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

然后内爆

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

但是我知道在顶级数组中没有获得所有子数组。

不知道该怎么做。

非常感谢帮助!

1 个答案:

答案 0 :(得分:1)

好了,因为你不能引用键,你可以将它们转移到一个新的键,然后只需简单地替换这些键(如果结构是固定的):

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