0

我想将一个字符串附加到 PHP 中嵌套关联数组的值中。

以下是我的数组

$styles = array(
    'Screen' => array(
        "master.css",
        "jquery-jvectormap-1.0.css"),
    'handheld' => array("mobile.css") 
     );

循环遍历它以按以下方式更改它失败。

foreach($media as $medium => $filename)
foreach($filenames as &$filename)
    $filename = "/styles/".$filename;

$medium加前缀&just 会导致语法错误。

这也失败了。

function prepend($prefix,$string)
{
return $prefix.$string;
}

foreach($media as &$medium)
  $medium = array_map(prepend("/styles"),$medium); 

给定这种数据结构"/styles/",为这些文件名添加前缀的最简单方法是什么?css

4

3 回答 3

2

尝试这个:

foreach($styles as $medium => &$filenames) {
  foreach($filenames as &$filename) {
    $filename = "/styles/".$filename;
  }
}

一些技巧:

  • 使用大括号来构建嵌套代码。这将使您(和 php)更好地理解您的意思
  • 使用缩进。这将为您提供更好的概览。
  • 使用数组变量的单数命名迭代变量(即 foreach($apples as $apple))。这将为您提供有关您正在处理的变量的额外提示。

祝你好运!

于 2012-12-11T14:58:12.030 回答
2

尝试这个:

$styles = array(
    'Screen' => array(
        "master.css",
        "jquery-jvectormap-1.0.css"),
    'handheld' => array("mobile.css") 
     );

foreach($styles as $k=>$v){
    foreach($v as $a=>$b){
        $styles[$k][$a] = '/styles/'.$b;
    }
}

print_r($styles);
于 2012-12-11T14:56:15.940 回答
0
foreach($media as $medium => $filenames) {
    foreach($filenames as $key => $filename) {
        $media[$medium][$key] = "/styles/" . $filename;
    }
}
于 2012-12-11T14:58:13.937 回答