Input str = "102_254,102_274,102_232,104_225,104_226,103_
:"ItemName1"},"1":{"menuid":"103","submenuid":"229","item":"ItemName2"}},"104":{"0":{"menuid":"104","submenuid":"225","item":"ItemName1"},"1":{"menuid":"104","submenuid":"226","item":"ItemName2"}}}}233,103_229,101_316,101_244,101_249,101_250"
此处输入为"102_254"表示"Menuid_Submenuid"
- 102 是菜单 ID
- 254 是子菜单 ID
表名为 :
- 子菜单表
表字段为:
- 菜单标识
- 子菜单标识
- 项目
我想从"子菜单表"表中选择项目名称并将其响应为 JSON 格式
输出将像这样分开:
- 102
- 254
- 274
- 232
- 104
- 225
- 226
- 103
- 233
- 229
- 101
- 316
- 244
- 249
- 250
我想像这样在 JSON 格式中输出:
{"0":{"101":{"0":{"menuid":"101","submenuid":"316","item":"ItemName1"},"1":{"menuid":"101","submenuid":"244","item":"ItemName2"},"2":{"menuid":"101","submenuid":"249","item":"ItemName3"},"3":{"menuid":"101","submenuid":"250","item":"ItemName4"}},"102":{"0":{"menuid":"102","submenuid":"254","item":"ItemName1"},"1":{"menuid":"102","submenuid":"274","item":"ItemName2"},"2":{"menuid":"102","submenuid":"232","item":"ItemName3"}},"103":{"0":{"menuid":"103","子菜单ID":"233","item"
这是一个重新格式化原型,只需要在项目前面加上项目并对每个子数组进行编码:
$sInput = '102_254,102_274,102_232,104_225,104_226,103_233,103_229,101_316,101_244,101_249,101_250';
$aInput = explode( ',', $sInput );
$iCountInputs = count( $aInput );
for( $i = 0; $i < $iCountInputs; ++$i )
{
$aInner = explode( '_', $aInput[ $i ] );
$aTmp[ $aInner[ 0 ] ][] = $aInner[ 1 ];
}
$sJson = json_encode( $aTmp );
var_dump( $aInput );
var_dump( $sJson );
$aAfter = json_decode( $sJson, 1 );
var_dump( $aAfter );