【问题标题】:using array merge into a foreach loop使用数组合并到一个 foreach 循环
【发布时间】:2013-05-03 01:22:24
【问题描述】:

如果他们的个人资料中有替代信息,我需要将一组新的替代信息合并到循环中。

这是我的循环:

foreach ($doctor->getVars() as $k => $v)
    {
    $data['doctor_'. $k] = $v;
    }

foreach ($patient->get_data() as $k=>$v)
    {
    if (is_string($v) || is_numeric($v))
        $data["patient_" . $k] = strtoupper($v);
    } 

这是 $data var_dump:

Array
(
    [employee] => person
    [date] => 05/08/2013
    [datetime] => 05/08/2013 9:41:15 AM
    [department] => stuff
    [employee_ext] => 7457
    [employee_email] => 
    [barcode] => *NZS01*
    [doctor_df_code] => 09HQ
    [doctor_npi] => 1111111111
    [doctor_dea] => B4574
    [doctor_upin] => 
    [doctor_license] => 
    [doctor_phone] => (111)111-1111
    [doctor_fax] => (000)000-0000
    [doctor_fname] => UNDEFINED
    [doctor_lname] => UNDEFINED
    [doctor_title] => 
    [doctor_intake_rx_caller_id] => 
    [doctor_costco_rx_caller_id] => 
    [doctor_reorder_rx_caller_id] => 
    [doctor_address1] => 24 CABELL st
    [doctor_address2] => SUITE 10
    [doctor_city] => places
    [doctor_state] => CA
    [doctor_zip] => 91111
    [doctor_active_events] => 
    [doctor_dont_call] => 0
    [doctor_dont_fax] => 1
)

我需要将下面的数组合并到上面的数组中。 这是函数 addr($dfcode) 的打印变量:

Array
(
    [0] => Array
        (
            [CODE_] => 09HQ
            [doctor_address1] => alternate addy
            [doctor_address2] => 45854
            [doctor_city] => different city
            [doctor_state] => CA
            [doctor_zip] => 963545
            [doctor_phone] => (619)111-2548
            [doctor_fax] => (157)123-4569
        )

)

我是数组合并的新手,我假设在 $data['doctor_'. $k] = $v 之后我可以列出新函数和我特别要合并的字段?

语法是我不确定的:

$data['doctor_'. $k] . array_merge(addr($dfcode))['doctor_address1'] = $v;

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • foreach($array_bot as $key=>$value){ $array_top[$key]=$value;这将合并我认为的 2 个数组。没有测试代码。但是你需要从一开始就拥有两个数组。不知道这是不是你真正的问题
  • 当您说如果他们有替代信息时要合并此信息,您的意思是仅当第二个数组包含信息时才要合并第二个数组中的数据?我不完全清楚你的条件是什么。此外,第二个数组中除了一个字段之外的所有字段都是第一个数组中字段的副本。您要替换原始数组中的数据吗?这与合并不同。
  • 是的,只有当第二个数组包含信息时才合并第二个数组中的数据。替换原始数组中的数据。
  • 您是否假设键将存在,但它们可能不包含任何值?还是您还需要检查密钥是否存在?
  • 它们将永远存在并且可能并不总是具有价值。

标签: php foreach array-merge


【解决方案1】:

合并两个数组的通用公式如下(将$array_m合并到$array_o):

foreach($array_m as $key=>$value){ 
    $array_o[$key] = $value;
}

$array_o 现在将包含$array_m 的所有元素

编辑:我刚刚在您的帖子中注意到您似乎想要使用 array_merge 函数。您还可以执行以下操作:

$array_o = array_merge($array_o, array_m);

【讨论】:

  • 是的,array_merge 函数是我认为可以完成工作的。我不确定如何将 $array_o 和 array_m 转换到我的循环中。
  • $data = array_merge($data['doctor_'.$k],addr($dfcode)) = $v;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 2017-02-18
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多