json_decode 的关联数组
json_decode of associative array
我正在将这个数组保存在我的数据库中:
$voz = array(); $datos = array(); $posicion_movil = array();
for ($i = 0; $i <= (int)$total_data["general_total_movil"]-1; $i++) {
array_push($posicion_movil, $i);
array_push($voz, "ilimitado");
array_push($datos, $data["movil_datos_datos-nacional"][$i]);
}
$movil = array(
"posicion" => $posicion_movil,
"voz" => $voz,
"datos" => $datos
);
$mi_resumen = new MyTariffResume();
$mi_resumen->movil = json_encode($movil, JSON_FORCE_OBJECT);
$mi_resumen->save();
我正在解码这个 json:
$mi_tarifa = MyTariffResume::where('user_id', \Auth::user()->id)->first();
$movil = json_decode($mi_tarifa["movil"], true);
但是当我决定遍历 laravel blade 中的数组时...
@foreach($movil as $i=>$movi)
{{$movi[$i]}} //Undefined index: posicion
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[0]}} //a full iteration (0, "ilimitado", 20)
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[0][$i]}} //Illegal string offset 'voz'
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[$i][0]}} //Undefined index: posicion
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[0][0]}} //Undefined index: posicion
@endforeach
我该如何解决这个问题?我没有什么可以证明的了,我不知道还能做什么。
JSON 我正在保存到我的数据库的示例:
{"posicion":{"0":0,"1":1},"voz":{"0":"ilimitado","1":"ilimitado"},"datos":{"0":"ilimitado","1":"60_gb_100_gb"}}
对于您要执行的操作,您的代码非常复杂。但是为了使您的代码正常工作,您误解了 foreach
对对象的作用。
想象一下下面的数据。
{"posicion":{"0":0,"1":1}}
下面foreach
调用。
@foreach($movil as $i=>$movi)
只会运行 1次,那么$i
会是'posicion',$movi
会是{"0":0,"1":1}
。您正在 $movi
上访问密钥 posicion
。将您的代码更改为此应该可以正常工作。然后在整个代码中相应地执行。
@foreach($movil as $i=>$movi)
{{$movil[$i][0]}}
@endforeach
您应该循环处理数组中的所有项目:
@foreach($movil as $i=>$movi)
@foreach($movi as $key => $item)
{{ $i.' '.$key.' - '.$item }}
@endforeach
@endforeach
我比我想象的更容易解决...
$movil = json_decode($mi_tarifa->movil, true);
$total_moviles = count($movil["voz"]);
@for ($i = 0; $i <= $total_moviles-1; $i++)
<p><strong>Móvil {{$i+1}}</strong></p>
<p><strong>Voz</strong>: {{$movil["voz"][$i]}}</p>
<p><strong>Datos</strong>: {{$movil["datos"][$i]}}</p>
@endfor
谢谢大家的宝贵时间。
我正在将这个数组保存在我的数据库中:
$voz = array(); $datos = array(); $posicion_movil = array();
for ($i = 0; $i <= (int)$total_data["general_total_movil"]-1; $i++) {
array_push($posicion_movil, $i);
array_push($voz, "ilimitado");
array_push($datos, $data["movil_datos_datos-nacional"][$i]);
}
$movil = array(
"posicion" => $posicion_movil,
"voz" => $voz,
"datos" => $datos
);
$mi_resumen = new MyTariffResume();
$mi_resumen->movil = json_encode($movil, JSON_FORCE_OBJECT);
$mi_resumen->save();
我正在解码这个 json:
$mi_tarifa = MyTariffResume::where('user_id', \Auth::user()->id)->first();
$movil = json_decode($mi_tarifa["movil"], true);
但是当我决定遍历 laravel blade 中的数组时...
@foreach($movil as $i=>$movi)
{{$movi[$i]}} //Undefined index: posicion
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[0]}} //a full iteration (0, "ilimitado", 20)
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[0][$i]}} //Illegal string offset 'voz'
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[$i][0]}} //Undefined index: posicion
@endforeach
@foreach($movil as $i=>$movi)
{{$movi[0][0]}} //Undefined index: posicion
@endforeach
我该如何解决这个问题?我没有什么可以证明的了,我不知道还能做什么。
JSON 我正在保存到我的数据库的示例:
{"posicion":{"0":0,"1":1},"voz":{"0":"ilimitado","1":"ilimitado"},"datos":{"0":"ilimitado","1":"60_gb_100_gb"}}
对于您要执行的操作,您的代码非常复杂。但是为了使您的代码正常工作,您误解了 foreach
对对象的作用。
想象一下下面的数据。
{"posicion":{"0":0,"1":1}}
下面foreach
调用。
@foreach($movil as $i=>$movi)
只会运行 1次,那么$i
会是'posicion',$movi
会是{"0":0,"1":1}
。您正在 $movi
上访问密钥 posicion
。将您的代码更改为此应该可以正常工作。然后在整个代码中相应地执行。
@foreach($movil as $i=>$movi)
{{$movil[$i][0]}}
@endforeach
您应该循环处理数组中的所有项目:
@foreach($movil as $i=>$movi)
@foreach($movi as $key => $item)
{{ $i.' '.$key.' - '.$item }}
@endforeach
@endforeach
我比我想象的更容易解决...
$movil = json_decode($mi_tarifa->movil, true);
$total_moviles = count($movil["voz"]);
@for ($i = 0; $i <= $total_moviles-1; $i++)
<p><strong>Móvil {{$i+1}}</strong></p>
<p><strong>Voz</strong>: {{$movil["voz"][$i]}}</p>
<p><strong>Datos</strong>: {{$movil["datos"][$i]}}</p>
@endfor
谢谢大家的宝贵时间。