Php 将变量转换为数组
我在将变量转换为数组时遇到问题。 我正在运行foreach循环以从多维数组$images中获取值$图像数组包含图像名称,例如:“Item Blue.png”或“Item Light Oak.png”以及每个图像的idPhp 将变量转换为数组,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['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;太棒了!!非常感谢您。