我有两个数组,我已经传递给我的Laravel视图。我想运行一个循环,将一个State变量设置为总变量。由于某种原因,即使我在循环之前定义了变量,也没有设置变量。我知道我有正确的变量排队,因为当我对两者做一个简单的回声时,我得到了正确的结果。
完整的代码张贴:
map.blade.php
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="css/screen.css">
<link rel="stylesheet" href="css/stately.css">
@define $AK = ""
@define $AL = ""
@define $AR = ""
@define $AZ = ""
@define $CA = ""
....
@define $WY = ""
@define $arr = array_combine($allstates, $alltotals)
@foreach ($arr as $allstates => $alltotals)
@define $array[$allstates] = $alltotals
{{ $allstates }} {{ $alltotals }}<br>
@define $allstates = $alltotals
{{ $allstates }} {{ $alltotals }}<br>
@endforeach
</head>
<body>
[Map here]
{{ $PA }}
</body>
控制器:
public function map()
{
$allstates = DB::table('distributors')->lists('state');
$alltotals = DB::table('distributors')->lists('total');
$merged = DB::table('distributors')->lists('state','total');
return View::make('map')
->with(compact('allstates'))
->with(compact('alltotals'))
->with(compact('merged'));
}
你可以在hennessey.io/map
上看到这个输出答案 0 :(得分:0)
你不能使用foreach循环修改数组。该值在循环内部分配,并在每次迭代后被丢弃。你是passing the key by value.
尝试这样做:
@define $arr = array_combine($allstates, $alltotals)
@foreach ($the_array as $key => $value)
@define $arr[$key] = $value
@endforeach
这将修改原始数组,而不仅仅是循环内部的副本。 Here's有关foreach循环如何在PHP中工作的更多信息。