我在将变量转换为数组时遇到问题。 我正在运行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]);
}
}
$ color变量给我颜色名称和$ image-> id可以给我图片ID。
我想用上面的变量构建$ colors数组,它看起来像这样:
$colors = array(
'Blue' => 1620,
'Green' => 1467,
);
有点像这样:
$colors = array(
'$colour' => $image->id,
);
我不知道如何做到这一点,我将不胜感激任何帮助,至少可以给我一些指示。
由于
答案 0 :(得分:1)
这应该非常简单......有两件事要做:
首先在foreach之外初始化colors数组:
$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'键。你需要创建一个吗?
所有这一切,你都没有检查这些问题:
希望有所帮助