php - 获取 PHP 数组中的第一个属性以在 switch 语句中使用时出错
问题描述
我正在处理 PHP Laravel 中的数组响应,借此我在响应中获得多组数据。例如在数组内部,数组的第一个元素可能是region manager或city manager或local manager。我以 JSON 对象的形式获取响应并将其转换为 PHP 数组。接下来,我正在尝试编写一个 switch 语句来检查第一个数组键是否为某个值,然后重定向到特定视图。问题是我发现使用开关来测试数组中的第一个值有点困难
包含正在获取的响应和其中的 switch 语句的控制器
public function getAgentHierachy(){
$resp = GeneralHelper::global_Curl([],'api/v1/b2b/life/agent-hierarchy')->data;
//Converting from JSON object to PHP array
$rs = json_decode(json_encode($resp),true);
$result = '';
switch($rs)
{
case $rs->regional_manager:
$result = view('pages.general.pol', compact('rs'));
break;
case $rs->city_manager:
$result = view('B2B::pages.general.pol', compact('rs'));
break;
case $rs->local_manager:
$result = view('B2B::pages.general.pol', compact('rs'));
break;
}
return $result;
}
作为包含不同案例的响应,我可能会获得示例数据
array:1 [▼
"regional_manager" => array:1 [▼
0 => array:3 [▶]
]
]
array:1 [▼
"city_manager" => array:1 [▼
0 => array:3 [▶]
]
]
array:1 [▼
"local_manager" => array:1 [▼
0 => array:3 [▶]
]
]
解决方案
从函数中删除true
作为第二个参数,json_decode()
然后您将能够像在 switch 案例中一样访问对象形式的 json 数据。
$rs = json_decode(json_encode($resp));
附带说明:我猜你在传递错误的论点switch()
编辑 - 01:您可以将代码修改为如下所示:
$viewName = $res = '';
$str = 'regional_manager';
switch($str)
{
case 'regional_manager':
$res = $rs->regional_manager;
$viewName = 'pages.general.pol';
break;
/*
and so on
*/
} //switch case ends
$result = view($viewName,compact('res'));
return $result;
推荐阅读
- react-native - 如何在本机反应中动态地在url中传递两个以上的值
- javascript - 创建空的 ag-grid 表
- javascript - react-flatpickr 范围选择,两个输入填充第一个输入中的两个日期
- java - 无法使用 TestNG 执行 Headless Geckodriver
- python-3.x - 从 pydoop 访问 hdfs 集群
- amazon-cloudformation - AWS SSM-Agent 未启动
- java - 返回 201 在 Spring Webflux 中具有特定主体的已创建状态
- php - Laravel 模型关系 - 我想建立什么样的关系?
- excel - excel在单元格上显示自定义vlookup工具提示/弹出/评论
- sublimetext3 - Sublime text 3,重新分配 + 和 - 远离增加减少 font_size 以折叠展开