【问题标题】:PHP - Array getting empty outside foreach loopPHP - 数组在 foreach 循环外变空
【发布时间】:2014-11-24 06:17:56
【问题描述】:

您好,我在 opencart 中有以下代码(负责在结帐步骤 - 4 中显示付款选项),

$method_data = array();

    $results = $this->model_setting_extension->getExtensions('payment');

                  foreach ($results as $result) {
                        if ($this->config->get($result['code'] . '_status')) {
                            $this->load->model('payment/' . $result['code']);

                            $method = $this->{'model_payment_' . $result['code']}->getMethod($payment_address, $total);

                            if ($method) {
                                $method_data[$result['code']] = $method;
                            }
                        }       
                       print_r($method_data); // Getting dump of data's
                    }   


             print_r($method_data); // Empty Array

我已经检查了此问题的所有可能组合,例如,

  • 没有其他同名变量 ($method_data),
  • Foreach 循环执行 4 次(有 4 个可用的付款选项)。

有没有人知道这个问题背后发生了什么。

【问题讨论】:

  • 你会得到什么数据转储? in foreach $method_data 有理想的输出吗??

标签: php arrays opencart


【解决方案1】:

你能用下面的代码再检查一次吗:

 if ($method) {
                   $method_data[][$result['code']] = $method;
              }

它将使数组成为二维的。 如果您需要进一步的帮助,请查看并告诉我。

注意:似乎是 CI 中的代码。

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多