【问题标题】:Get value from an array php从数组php中获取值
【发布时间】:2018-05-05 22:19:40
【问题描述】:

我有一个 jquery on click 函数,我正在创建一个名为 weekdays 的新数组,稍后我插入该数组值:

 var weekdays = {};
 weekdays['id'] = [id];
 weekdays['amount_of_points'] = [amount_points];

在我做完之后

weekdays = JSON.stringify(weekdays);
parent.find($('.form_points')).append('<input type="hidden" value=' + weekdays + ' name="skills[]">');

所有这些值都在 Laravel 的 foreach 中以一个形式存在。

在控制器中当我调用 $request->我收到的技能时

   array:2 [▼
    0 => "{"id":[41],"amount_of_points":[6]}"
    1 => "{"id":[40],"amount_of_points":[4]}"
   ]

如何获取id的值?

我试过了:

    foreach($request->skills as $skill){
        dd($skill['id']); // Illegal string offset id
        dd($skill->id); //Trying to get a property of a non object
     }

【问题讨论】:

  • 所以你有一个 jsons 数组,基本上表示为一个字符串。您需要 json_decode 数组的值或重新考虑您的方法。
  • 试试dd($request-&gt;skills);,肯定会给你提示
  • #Andrew 我在 json decode 之前尝试过,但我在 foreach 之前使用它,现在一切正常,谢谢。 #lewis4u 看看上面,你会看到我已经从 $request->skills 发布了结果。谢谢。

标签: php jquery arrays laravel


【解决方案1】:

您需要将 $skill 数组中的 json 对象解码为 php 数组,然后才能像 $skill['id'] 一样访问它

foreach($request->skills as $skill){
  $newSkills = json_decode($skill)

  $newSkills['id']
}

【讨论】:

  • 这个通过修改 $skill = json_decode($skill, true);谢谢。
【解决方案2】:
var weekdays = {};
var skill = [
    'id' => id,
    'amount_of_points' => amount_points
] 

并且,将每个技能附加到您的工作日数组

weekdays.push(skill);

在 PHP 中

foreach($request->skills as $skill){
    $skill = json_decode($skill);
    var_dump($skill['id']);
    var_dump($skill['amount_points']);
}

【讨论】:

  • 这个也有效,我使用了以前的答案,但这个是更好的实现方式。唯一的问题是改变这部分 var weekdays = {}; var Skill = [ 'id' => id, 'amount_of_points' => amount_points ] 应该是别的东西而不是 =>
  • 哦,是的,= 而不是 => ))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多