omnia456 Posted December 30, 2011 Share Posted December 30, 2011 I have this example php string: $string = "@[item_1][door] @[mozart][grass] = yes @[mozart][green] = no @[mozart][human] @[blue][movie]=yes @[item_1][beat] = yes @[item_1][music] = no "; now $string idented just to easy view: @[item_1][door] @[mozart][grass] = yes @[mozart][green] = no @[mozart][human] @[blue][movie]=yes @[item_1][beat] = yes @[item_1][music] = no I want to know how can i get this string ( or other string following this style ) and transform in an array that looks like: Array ( [item_1] => Array ( [door] => Array ( [mozart] => Array ( [grass] => yes [green] => no [human] => Array ( [blue] => Array ( [movie] => yes ) ) ) ) [beat] => yes [music] => no ) ) What i tried I tried to use and recursive function to create an nested array but i can't have access to the array pointer ( in deep levels ) in recursive functions.. don't know why.. maybe is the wrong patch to the answer. thank you, Quote Link to comment https://forums.phpfreaks.com/topic/254079-php-string-to-nested-multidimensional-array/ Share on other sites More sharing options...
Muddy_Funster Posted December 30, 2011 Share Posted December 30, 2011 you could try and use a series of explode()'s on your string...but it would probably be better to address why you have a string in that format in the first place . Quote Link to comment https://forums.phpfreaks.com/topic/254079-php-string-to-nested-multidimensional-array/#findComment-1302553 Share on other sites More sharing options...
omnia456 Posted December 30, 2011 Author Share Posted December 30, 2011 Hello, thank you for the attention. this string comes from a windows application.. so it has to be this may. i tried using explode: I thought that an algorithm should work, but I can not make it reality: 1) explode the string @ this will give me two types of pieces: a) Arrays as pieces that are: * [item_1] [door] * [Mozart] [human] b) pieces that have the "=" in them are then: * [Mozart] [grass] = yes * [Mozart] = no * [blue] = yes * [item_1] [beat] = yes * [item_1] [music] = no 2) the algorithm: 1) create an empty array 2) foreach in the string piactes if piace_are_array and item_does_not_exist($tree) -> add_current_piece else if attibrute_existe -> append on it if is_not_array -> append in the last attribute added. something like that.. is it clear now? thank you Quote Link to comment https://forums.phpfreaks.com/topic/254079-php-string-to-nested-multidimensional-array/#findComment-1302639 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.