0

我在将变量转换为数组时遇到问题。我正在运行 foreach 循环以从我的多维数组 $images 中获取值。$images 数组包含图像名称,例如:“Item Blue.png”或“Item Light Oak.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

这应该很简单......要做两件事:

首先在你的 foreach 之外初始化颜色数组:

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

然后只需在 if/else 之后添加一行,仍在您的 foreach 循环内,它将向 $colors 数组中插入一个新项目。

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

这将创建一个颜色数组,其中包含您正在寻找的内容。我假设 $image 迭代器中有一个 'id' 键。你需要创建一个吗?

尽管如此,您并没有检查这些问题:

  1. 带空格的颜色名称,例如“浅橡木”
  2. 带有空格的项目名称,例如“大型项目轻橡木.png”
  3. 具有不同 ID 的重复颜色

希望有帮助

于 2012-04-29T05:41:37.563 回答