0

変数を配列に変換するのに問題があります。多次元配列$imagesから値を取得するためにforeachループを実行しています。$ images配列には、「ItemBlue.png」または「ItemLightOak.png」などの画像名と各画像のIDが含まれます。

foreach ($images['images'] as $image) {
    $image_name = explode(" ", substr_replace($image->filename ,"",-4));
    if(!empty($image_name[2])) {
        $colour = ucfirst($image_name[1] . " " . $image_name[2]);
    }
    else {
        $colour = ucfirst($image_name[1]);
    }
}

$ colour変数は私に色名を与え、$image->idは私に画像IDを与えることができます。

上記の変数を使用して$colors配列を作成し、次のようにします。

$colors = array(
    'Blue' => 1620,
    'Green' => 1467,
);

このようなもの:

$colors = array(
    '$colour' => $image->id,
);

私はこれを行う方法がわかりません。少なくともいくつかの指示を与えるために助けていただければ幸いです。

ありがとう

4

1 に答える 1

1

これはかなり簡単なはずです...2つのことをします:

まず、foreachの外部でcolors配列を初期化します。

 $colors=array();   //<-- add this
 foreach ($images['images'] as $image) {
     $image_name = explode(" ", substr_replace($image->filename ,"",-4));
     ...

次に、if / elseの後に1行追加します。これは、foreachループ内にあり、$colors配列に新しいアイテムを挿入します。

    ...
    else {
        $colour = ucfirst($image_name[1]);
    }
    $colors[$colour]=$image->id;  //<-- add this
}

これにより、探している内容のような色の配列が作成されます。$imageイテレータに「id」キーがあると想定しています。作成する必要がありましたか?

とはいえ、これらの問題をチェックしているわけではありません。

  1. 「ライトオーク」のようなスペース付きの色名
  2. 'large itemlightoak.png'のようなスペースのあるアイテム名
  3. 異なるIDで色を複製する

お役に立てば幸い

于 2012-04-29T05:41:37.563 に答える