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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.