我想要将数组键名中的所有空格删除,例如使用str_replace(' ','',$value)(或者最坏情况下用下划线(_)替换它们)
我正在尝试在多维数组的最深层(如下所示)进行操作(因为其他层级没有空格(谢天谢地!))
[...]
[ownPagestoriesbystorytype] => Array
(
[type] => pagestoriesbystorytype
[object_id] => 12365478954
[metric] => page_stories_by_story_type
[end_time] => 1386057600
[period] => 86400
[ownValues] => Array
(
[type] => pagestoriesbystorytypemetrics
[fan] => 1913
[page post] => 153
[user post] => 24
)
)
[ownPagestorytellersbystorytype] => Array
(
[type] => pagestorytellersbystorytype
[object_id] => 12365478954
[metric] => page_storytellers_by_story_type
[end_time] => 1386057600
[period] => 86400
[ownValues] => Array
(
[type] => pagestorytellersbystorytypemetrics
[fan] => 1902
[page post] => 137
[user post] => 9
)
)
[...]
到目前为止,我的尝试都没有结果:
[...]
if (is_array($value))
{
$keys = str_replace(' ','',array_keys($value));
$values = array_values($value);
$value = array_combine($keys,$values);
}
[...]
[...]
foreach ($value as $k => $v)
{
$b = str_replace(' ','',$k);
$value[$b] = $value[$k];
unset ($value[$k]);
}
[...]
以上代码无效,但是如果我在循环的结尾处放置print_r($value);,你可以清楚地看到空格被删除了,但最终结果仍然带有空格。
整个循环如下所示:
for ($i=0;$i<count($results);$i++)
{
for ($j=0;$j<count($results[$i]);$j++)
{
foreach($results[$i][$j] as $key => $value)
{
$typee = ['type' => strtolower(str_replace('_','',$results[$i][$j]['metric']))];
array_insert($results[$i][$j],$typee,0);
if (is_array($value))
{
$keys = str_replace(' ','',array_keys($value));
$values = array_values($value);
$value = array_combine($keys,$values);
$type = ['type' => strtolower(str_replace('_','',$results[$i][$j]['metric']))."metrics"];
array_insert($results[$i][$j]['value'],$type,0);
$results[$i][$j]['ownValues'] = $results[$i][$j][$key];
unset($results[$i][$j][$key]);
}
}
}
}
以下是整个数组的外观:
如何在php中使用我选择的键和值将数组前置到另一个数组的每个元素?
有什么建议吗? :)