我在将变量转换为数组时遇到问题。我正在运行 foreach 循环以从我的多维数组$images中获取值。$images数组包含图像名称,例如:"项目蓝色.png"或"项目浅橡树.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,
);
我不知道该怎么做,我将不胜感激任何帮助,至少给我一些方向。
谢谢
这应该很简单...要做的两件事:
首先初始化 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"键。 您需要创建一个吗?
综上所述,您没有检查这些问题:
- 带空格的颜色名称,如"浅橡木"
- 带有空格的项目名称,例如"大项目浅橡木.png
- 具有不同 ID 的重复颜色
希望有帮助