Php 将变量转换为数组

Php 将变量转换为数组,php,arrays,variables,Php,Arrays,Variables,我在将变量转换为数组时遇到问题。 我正在运行foreach循环以从多维数组$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

我在将变量转换为数组时遇到问题。 我正在运行foreach循环以从多维数组$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,
);
有点像这样:

$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));
     ...
$colors=array()//文件名,“,-4”);
...
然后只需在if/else之后添加一行,仍然在foreach循环中,该循环将向$colors数组中插入一个新项

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

$colors[$color]=$image->id//你能给我们看一些输入和输出的例子吗;数组([images]=>Array([1620]=>ProductImage对象([filename]=>Brancepeth Blue.png[id]=>1620))小问题数组([0]=>Array([Blue]=>1620)[1]=>Array([Green]=>1621)[2]=>Array([Red]=>1622)[3]=>Array([White]=>1623)[4]=>数组([铜牌左]=>1670)[5]=>数组([铜牌右]=>1671)[6]=>数组([铜牌左]=>1672)[7]=>数组([铜牌右]=>1673))编辑了答案。对于造成的混乱,我深表歉意。将项目添加到数组的行是错误的。文件名将保持一致,我可能稍后再处理,这里的问题是代码,数组现在有自己的密钥。密钥应该是彩色的。哈,我无意中编辑了我对你的答复的答复,没有看到你的新答复。我误读了y我们想要的输出..答案已更新--只需将行更改为:$colors[$color]=$image->id;太棒了!!非常感谢您。