【发布时间】:2018-03-12 15:30:04
【问题描述】:
我有一个数组要遍历:
array:8132 [
0 => {#551
"address_id": "94e224af-135f-af31-3619-535acfae9930"
"fiber_phase": "101"
"parsed_hash": "1bc7fb114ee10d7cb9cea10693d238b5"
"min_number": 400
"max_number": 499
"sales_rep": "164"
"id": "abd90d6b-28a8-2be6-d6c1-abd9007aef38"
"name": "48TH ST E"
"block_minimum": 400
"block_maximum": 498
}
在 foreach 中,我有另一个数组,我需要访问 if 语句的某些属性,然后将新属性添加到原始数组 ($data):
foreach ($data as $phase) {
$all_phases = EmeraldFiber::getPhases();
dd($all_phases);
if ($phase->fiber_phase === $all_phases[1]['name']) {
$phase->fiber_status = $all_phases[1]['fiber_status'];
}
return $data;
}
dd($all_phases); 看起来像这样:
array:270 [
1 => array:7 [
"id" => "10bc06d0-05de-07e2-b2de-5214fba5045a"
"name" => "1"
"description" => "50th France"
"encoded_points" => "_sbqGnesxPJwv@iJBKpv@fJ@"
"fiber_status" => "Live"
"status_date" => "2010-09-01 00:00:00"
]
使用上面的 foreach,我只返回原始数组,没有新属性 fiber_status。我没有正确返回它吗?或者我是否需要映射第二个数组 ($all_phases) 才能正确访问这些属性?
【问题讨论】:
-
使用参考
foreach ($data as &$phase) -
$all_phases = EmeraldFiber::getPhases();不依赖于$phase。它应该留在foreach之外。 -
在 1 次迭代后,您的返回将有效地阻止
for each。 -
我想
name=1不等于phase_fiber=101 -
$phase->fiber_phase === $all_phases[1]['name']有很多匹配项
标签: php arrays multidimensional-array foreach