Php 如何在laravel中从json数组中获取数据

Php 如何在laravel中从json数组中获取数据,php,laravel,Php,Laravel,我在从laravel中的json数组中获取数据时遇到问题。我有json数组,我想在两个不同的选择选项下显示数据,但我不知道在json_decode()之后如何获取数据,而不只是在php中使用jquery { "option":["Size","Color"], "values":["L|M|S","Red|Green|Black"], "price":["9000|8000|6000","9000|8000|6000"] } 我想在这些选择选项下显示它,例如在laravel刀片中的“颜色选择选

我在从laravel中的json数组中获取数据时遇到问题。我有json数组,我想在两个不同的选择选项下显示数据,但我不知道在json_decode()之后如何获取数据,而不只是在php中使用jquery

{
"option":["Size","Color"],
"values":["L|M|S","Red|Green|Black"],
"price":["9000|8000|6000","9000|8000|6000"]
}
我想在这些选择选项下显示它,例如在laravel刀片中的“颜色选择选项”下的“颜色”和“大小选择选项”下的“大小”


您必须首先解码JSON字符串,然后使用@foreach创建选择框。 虽然我不知道你想做什么,因为选择框选项的值对于知道哪个价格属于哪个很重要。但以下是您需要的代码:

    @php 
       $js = '{
          "option":["Size","Color"],
          "values":["L|M|S","Red|Green|Black"],
          "price":["9000|8000|6000","9000|8000|6000"]
       }';

       $js = json_decode($js);

    @endphp

@foreach($js->option as $index => $option)
    <select name="{{$option}}" id="{{$option}}">
        @php
            $values = $js->values[$index];
            $values = explode('|',$values);

            $prices = $js->price[$index];
            $prices = explode('|',$prices);
        @endphp
        <option disabled selected>{{$option}}</option>
        @foreach($values as $indx => $value)
            <option value="{{$prices[$indx]}}">{{$value}} {{$prices[$indx]}}$</option>
        @endforeach
    </select>
@endforeach
@php
$js='1{
“选项”:[“大小”、“颜色”],
“值”:[“L | M | S”、“红色|绿色|黑色”],
“价格”:[“9000 | 8000 | 6000”,“9000 | 8000 | 6000”]
}';
$js=json_decode($js);
@endphp
@foreach($js->option as$index=>$option)
@php
$values=$js->values[$index];
$values=分解(“|”,$values);
$prices=$js->price[$index];
$prices=爆炸(“|”,$prices);
@endphp
{{$option}}
@foreach($indx=>$value)
{{$value}{{$prices[$indx]}$
@endforeach
@endforeach

通常,您必须发送一个产品对象来查看,然后在此处使用该对象的属性。然后必须在选项的值中添加产品的id。检测用户试图购买的产品。

为此创建Halper方法。
$jsonString = '{
          "option":["Size","Color"],
          "values":["L|M|S","Red|Green|Black"],
          "price":["9000|8000|6000","9000|8000|6000"]
       }';

print_r(createItemAttributes($jsonString, $valueSpliter = '|'));

function createItemAttributes($jsonString, $valueSpliter = '|'){
$itemAttributes = json_decode($jsonString);
$options = [];
foreach($itemAttributes->option as $key => $value){

$options[$value] = explode('|',$itemAttributes->values[$key]);

}

  $html = [];


  foreach($options as $option => $values ){
    $selectStart = '<select name="'.$option.'">';
    $selectEnd = '</select>';
          $valueString = '';

          foreach($values as $value){
          $valueString .= '<option value="'.$value.'">'.$value.'</option>';
        }

      $html[$option] = $selectStart.$valueString.$selectEnd;


    }
  return $html;
}

?>
$jsonString='1!'{
“选项”:[“大小”、“颜色”],
“值”:[“L | M | S”、“红色|绿色|黑色”],
“价格”:[“9000 | 8000 | 6000”,“9000 | 8000 | 6000”]
}';
打印(createItemAttributes($jsonString,$valueSpliter='|');
函数createItemAttributes($jsonString,$valueSpliter='|'){
$itemtattributes=json_decode($jsonString);
$options=[];
foreach($itemtattributes->option as$key=>$value){
$options[$value]=分解(“|”,$itemtattributes->values[$key]);
}
$html=[];
foreach($options作为$option=>$value){
$selectStart='';
$selectEnd='';
$valueString='';
foreach($value作为$value){
$valueString.=''.$value';
}
$html[$option]=$selectStart.$valueString.$selectEnd;
}
返回$html;
}
?>

Awesome help@Salar