如何在PHP for MySQL中获取数组外部的变量?
我有一个大的如何在PHP for MySQL中获取数组外部的变量?,php,mysql,arrays,opencart,Php,Mysql,Arrays,Opencart,我有一个大的foreach循环,其中包含其他循环和条件。在我正在修改的代码顶部,我希望从选项\u data数组中提取一个值-这是如何实现的 foreach ($this->cart->getProducts() as $product) { $option_data = array(); foreach ($product['option'] as $option) { if ($option['type'] != 'file') {
foreach
循环,其中包含其他循环和条件。在我正在修改的代码顶部,我希望从选项\u data
数组中提取一个值-这是如何实现的
foreach ($this->cart->getProducts() as $product) {
$option_data = array();
foreach ($product['option'] as $option) {
if ($option['type'] != 'file') {
$value = $option['option_value'];
} else {
$filename = $this->encryption->decrypt($option['option_value']);
$value = utf8_substr($filename, 0, utf8_strrpos($filename, '.'));
}
$option_data[] = array(
'cid' => $option['option_value_id'], // WANT THIS CID VALUE
'name' => $option['name'],
'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value),
'type' => $option['type']
);
}
$sql_get_colour_image=mysql_query("
SELECT
imagefb_url
FROM
`ocm1__product_image_fb`
WHERE
`pid`=`".$product['product_id']."`
AND
`cid`= //GOES HERE
");
您可以尝试以下方法:
$option_data = array();
foreach ($product['option'] as $option) {
if ($option['type'] != 'file') {
$value = $option['option_value'];
} else {
$filename = $this->encryption->decrypt($option['option_value']);
$value = utf8_substr($filename, 0, utf8_strrpos($filename, '.'));
}
$option_data[] = array(
'cid' => $option['option_value_id'], // WANT THIS CID VALUE
'name' => $option['name'],
'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value),
'type' => $option['type']
);
$sql_get_colour_image=mysql_query("
SELECT
imagefb_url
FROM
`ocm1__product_image_fb`
WHERE
`pid`=".$product['product_id']."
AND `cid`= ".$option['option_value_id']."
");
}
您可以选择:
$option_data = array();
$cids = array();
foreach ($product['option'] as $option) {
if ($option['type'] != 'file') {
$value = $option['option_value'];
} else {
$filename = $this->encryption->decrypt($option['option_value']);
$value = utf8_substr($filename, 0, utf8_strrpos($filename, '.'));
}
$option_data[] = array(
'cid' => $option['option_value_id'], // WANT THIS CID VALUE
'name' => $option['name'],
'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value),
'type' => $option['type']
);
$cids[] = $option['option_value_id'];
}
$sql_get_colour_image=mysql_query("
SELECT
imagefb_url
FROM
`ocm1__product_image_fb`
WHERE
`pid`=".$product['product_id']."
AND
`cid` IN (".implode(",",$cids).")
");
cid存在于您试图引用的上下文的内部循环中。我如何将
$option['option\u value\u id']
取出并将其放入MySQL查询中?感谢您的回复,第一个还是最后一个是$option['option\u value\u id']
?我想从$option\u data[]
中获取cid
,并将其放在MySQL$option\u data[]的cid
调用中。可以有多个cid值。您将他的查询移动到了内部循环,我不知道;我不认为那是他想要的,那是问题所在。我必须将其移动到内部循环中才能获得值!谢谢你也注意到了这个内部循环。@DevZer0哦,这是唯一的选择。。。或者在(内爆阵列)中加入cid
你能在答案中给我看一个内爆阵列吗?仅供将来学习