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&、構文エラーが発生します。

これも失敗します。

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

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

"/styles/"このデータ構造を前提として、これらのcssファイル名にプレフィックスを付ける最も簡単な方法は何ですか?

4

3 に答える 3

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 に答える
2

これを試して:

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

いくつかのヒント:

  • 中括弧を使用して、ネストされたコードを構造化します。これにより、あなた(およびphp)はあなたが何を意味しているのかをよりよく理解できるようになります
  • インデントを使用します。これにより、より良い概要が得られます。
  • Array-Variableの単数を使用してIterating-Variableに名前を付けます(つまり、foreach($ apples as $ apple))。これにより、処理している変数に関する追加のヒントが得られます。

幸運を!

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