在php中解析键为浮点的嵌套数组

在php中解析键为浮点的嵌套数组,php,arrays,laravel,laravel-5,Php,Arrays,Laravel,Laravel 5,我有一个查询,需要从嵌套数组中获取一个值。我用的是laravel 5.4,以防有问题 $usersstyle = DB::connection('mysql2') ->table('wp_rg_lead_detail') ->where('lead_id', $collection->id) ->get(); dd($usersstyle); 其输出为: Collection {#396 ▼ #items: array:49 [▼ 0 => {#406

我有一个查询,需要从嵌套数组中获取一个值。我用的是laravel 5.4,以防有问题

$usersstyle = DB::connection('mysql2')
  ->table('wp_rg_lead_detail')
  ->where('lead_id', $collection->id)
  ->get();
dd($usersstyle);
其输出为:

Collection {#396 ▼
#items: array:49 [▼
0 => {#406 ▶}
1 => {#407 ▶
18 => {#428 ▼
  +"id": 655
  +"lead_id": 67
  +"form_id": 8
  +"field_number": 51.0
  +"value": "Yes"
}
19 => {#429 ▼
  +"id": 656
  +"lead_id": 67
  +"form_id": 8
  +"field_number": 6.1
  +"value": "Sleeveless"
}
20 => {#430 ▼
  +"id": 657
  +"lead_id": 67
  +"form_id": 8
  +"field_number": 6.2
  +"value": "Jacket"
}
21 => {#431 ▼
  +"id": 658
  +"lead_id": 67
  +"form_id": 8
  +"field_number": 6.3
  +"value": "Cardigan"
}
22 => {#432 ▶}
我尝试了以下方法,但它返回字段_编号的第一个实例,并忽略6.2和6.3。我如何做到这一点,并保持所有的浮动键

 $keyed = $usersstyle->keyBy('field_number')->all();
我想得到下面这样的东西。没有foreach循环来显示它

 echo $6.3->value;
结果是羊毛衫

我也用过

  $grabvalues = $usersstyle->whereIn('field_number', 80.3)->toArray();
这将返回一个数组,或者如果我删除toArray,则返回一个仍然需要循环使用以获取值的集合,请尝试以下操作:可以帮助您

$plucked = $usersstyle->pluck('field_number', 'value');

$plucked->all();
另一种方式:

$fieldValue = $usersstyle->map(function ($users) {
    return collect($users->toArray())
        ->only(['field_number', 'value'])
        ->all();
});
试试这个:也许对你有帮助

$plucked = $usersstyle->pluck('field_number', 'value');

$plucked->all();
另一种方式:

$fieldValue = $usersstyle->map(function ($users) {
    return collect($users->toArray())
        ->only(['field_number', 'value'])
        ->all();
});

经过一系列的测试。。这是我想出的对我有用的答案。如果有人知道如何写这个更好,请提交

  $usersstyle = DB::connection('mysql2')
  ->table('wp_rg_lead_detail')
  ->where('lead_id', $collection->id)
  ->get()

  ;
  $newkeys = $usersstyle->pluck('field_number');
  $values = $usersstyle->pluck('value');
  $result = $newkeys->combine($values)->toArray();
  dd($result["6.1"]);

经过一系列的测试。。这是我想出的对我有用的答案。如果有人知道如何写这个更好,请提交

  $usersstyle = DB::connection('mysql2')
  ->table('wp_rg_lead_detail')
  ->where('lead_id', $collection->id)
  ->get()

  ;
  $newkeys = $usersstyle->pluck('field_number');
  $values = $usersstyle->pluck('value');
  $result = $newkeys->combine($values)->toArray();
  dd($result["6.1"]);

你这句话的意思是什么>>我想得到下面这样的东西。没有foreach循环来显示它。你能解释一下吗?@MinarMnr是的,因为我想获取相关字段的“值”,这意味着如果我执行以下操作$msshirt=6.1->value;然后,当我调用$msshirt时,我希望它在这一行$keyed=$userssstyle->keyBy('field_number')->all()之后给我一个'sleeveless';使用foreach循环,您将获得您的值。@MinarMnr是的,使用foreach循环,我当前执行的操作与下面的代码类似,它会给我一个值,但我不希望每次设置变量时都这样做。因为有很多字段号。foreach($usersform){{{$usersform->value}}
endforeach实际上我不清楚您不使用foreach的原因。只是说,在设置变量之前,不必每次都使用foreach。只需使用foreach一次,然后将这些值存储在数组中。。。然后使用数组索引来设置一个变量。这一行的意思是什么>>我想得到如下内容。没有foreach循环来显示它。你能解释一下吗?@MinarMnr是的,因为我想获取相关字段的“值”,这意味着如果我执行以下操作$msshirt=6.1->value;然后,当我调用$msshirt时,我希望它在这一行$keyed=$userssstyle->keyBy('field_number')->all()之后给我一个'sleeveless';使用foreach循环,您将获得您的值。@MinarMnr是的,使用foreach循环,我当前执行的操作与下面的代码类似,它会给我一个值,但我不希望每次设置变量时都这样做。因为有很多字段号。foreach($usersform){{{$usersform->value}}
endforeach实际上我不清楚您不使用foreach的原因。只是说,在设置变量之前,不必每次都使用foreach。只需使用foreach一次,然后将这些值存储在数组中。。。然后使用数组索引设置变量。这将返回键作为值。当我知道字段号但不知道值时,如何调用或设置变量?我认为第二个变量将给出您想要的结果。感谢您的帮助@minarThis将键作为值返回。当我知道字段号但不知道值时,如何调用或设置变量?我想第二个变量会给出您想要的结果。谢谢您的帮助@minar