Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从PHP中的字符串为json输出创建两个数组_Php_Json_Database_Web Services - Fatal编程技术网

如何从PHP中的字符串为json输出创建两个数组

如何从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

我想在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 = 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);