Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP for MySQL中获取数组外部的变量?_Php_Mysql_Arrays_Opencart - Fatal编程技术网

如何在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
你能在答案中给我看一个内爆阵列吗?仅供将来学习