如何从PHP中的字符串为json输出创建两个数组
我想在MenuTable和SubMenuTable(在循环中)中启动查询 但我有数据是字符串,如下所示:如何从PHP中的字符串为json输出创建两个数组,php,json,database,web-services,Php,Json,Database,Web Services,我想在MenuTable和SubMenuTable(在循环中)中启动查询 但我有数据是字符串,如下所示: "102_264,102_273,104_225,103_233,103_229,103_232,101_316,101_244,101_246,101_249" 此处102\u 264(menuId\u子菜单id) 102是menuId 264是子菜单ID 所以,我想分离这个字符串,然后在上面的表中启动查询。 如何执行此操作?您正在查找explode函数 $array = explo
"102_264,102_273,104_225,103_233,103_229,103_232,101_316,101_244,101_246,101_249"
此处102\u 264
(menuId\u子菜单id
)
是102
menuId
是264
子菜单ID
如何执行此操作?您正在查找explode函数
$array = explode($string,','); //Will contain array $array[0] = "102_264" etc
foreach($array as $arr){
$explodedArr = explode($arr, '_');
$menuId = $explodedArr[0]; //Contains 102
$subMenuId = $explodedArr[1]; //Contains 264
}
$str='102_264102_273104_225103_229103_232101_316101_244101_246101_249';
$arr=array();
$arr=爆炸(“,”,$str);
对于($i=0;$i基本上您希望分解字符串。3D数组的快速方法:
$data = "102_264,102_273,104_225,103_233,103_229,103_232,101_316,101_244,101_246,101_249";
$result = [];
// retrieve array by splittting string with every comma
foreach(explode(',', $data) as $value) {
// retrieve Ids by splitting string with underscore
$serie = explode('_', $value);
$result[] = array(
'menuId' => $serie[0],
'subMenuId' => $serie[1],
);
}
您将把所有内容都放在单独的子数组中,以便轻松地循环查询。试试看,它将分解和映射结合起来,在一行代码中为您提供数据。
$results = array_map(function($data){
return explode("_",$data);
}, explode(",", $tmp));
foreach($results as $result){
echo "menuId: " . $result[0]." subMenuId: ".$result[1]."<br />";
}
您可以使用explode函数或使用list,并最终使用JSON\u encode函数将其转换为JSON格式。此代码适用于您尝试以下操作
$str="102_264,102_273,104_225,103_233,103_229,103_232,101_316,101_244,101_246,101_249";
$arrayComma = explode(',', $str);
$menu = array();
$subMenu = array();
foreach($arrayComma AS $val){
list($menu[], $subMenu[]) = explode('_', $val);
}
$json = array();
$json=array("menu" => $menu, "submenu" => $subMenu);
echo json_encode($json);
快乐编码..!按分解,
,循环,分解。
menuId: 102 subMenuId: 264
menuId: 102 subMenuId: 273
menuId: 104 subMenuId: 225
menuId: 103 subMenuId: 233
menuId: 103 subMenuId: 229
menuId: 103 subMenuId: 232
menuId: 101 subMenuId: 316
menuId: 101 subMenuId: 244
menuId: 101 subMenuId: 246
menuId: 101 subMenuId: 249
$str="102_264,102_273,104_225,103_233,103_229,103_232,101_316,101_244,101_246,101_249";
$arrayComma = explode(',', $str);
$menu = array();
$subMenu = array();
foreach($arrayComma AS $val){
list($menu[], $subMenu[]) = explode('_', $val);
}
$json = array();
$json=array("menu" => $menu, "submenu" => $subMenu);
echo json_encode($json);