php - 如何在 PHP for MySQL 中获取数组外部的变量?

标签 php mysql arrays opencart

我有一个大型 foreach 循环,其中包含其他循环和条件。在我正在修改的代码顶部,我希望使用 option_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).")
");

关于php - 如何在 PHP for MySQL 中获取数组外部的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17465153/

相关文章:

mysql - 如何读取mysql错误日志

java - java中的重复字符串数组

PHP警告: PHP Startup: Unable to load dynamic library 'bz2'

php - 使用 Google 帐户登录

mysql - 如何在shell脚本中将查询的结果集插入到表中?

php - 从数据库回显数据时使用 PHP 变量

java - 选择排序(Java)

java - 在java中添加和检索对象数组中的元素

php - mod_rewrite 添加 .php 扩展

php - 如何找到2个表之间的mysql差异