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, 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 . 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 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
Archived
This topic is now archived and is closed to further replies.