0

Input str = "102_254,102_274,102_232,104_225,104_226,103_233,103_229,101_316,101_244,101_249,101_250"

Here Input is "102_254" means "Menuid_Submenuid"

  • 102 is menuId
  • 254 is subMenuId

Table name is :

  • SubMenuTable

Table Fields is:

  • menuid
  • submenuid
  • item

I want to select item name from "SubMenuTable" table and response it to JSON Format

Output will be separate like this:

  • 102
    • 254
    • 274
    • 232
  • 104
    • 225
    • 226
  • 103
    • 233
    • 229
  • 101
    • 316
    • 244
    • 249
    • 250

I want to output in JSON Formate like this:

{"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","submenuid":"233","item":"ItemName1"},"1":{"menuid":"103","submenuid":"229","item":"ItemName2"}},"104":{"0":{"menuid":"104","submenuid":"225","item":"ItemName1"},"1":{"menuid":"104","submenuid":"226","item":"ItemName2"}}}}

1 Answer 1

1

Here's a reformatting prototype just need to prepend items and encode each sub-array:

$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 );
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.