Hey guys, First time poster and hoping somebody could help me out. Im having major headaches over this, im trying to get a loop to accomplish this structure Putting this array ( [0] => Array ( [cat_id] => 1 [sub_cat_name] => Apples [sub_cat_id] => 1 ) [1] => Array ( [cat_id] => 1 [sub_cat_name] => Oranges [sub_cat_id] => 2 ) [3] => Array ( [cat_id] => 2 [sub_cat_name] => Bike [sub_cat_id] => 3 ) [4] => Array ( [cat_id] => 2 [sub_cat_name] => Boat [sub_cat_id] => 4 ) ) Code (markup): INTO this;----> [ ['cat_id_1' , [ ['sub_cat_name_1' , 'sub_cat_id' ] , ['sub_cat_name_2','sub_cat_id'] ] ] , [ ['cat_id_2' , [ ['sub_cat_name_2' , 'sub_cat_id' ] , ['sub_cat_name_2','sub_cat_id'] ] ] Code (markup): and so on any help much appreciated. cheers, kevin
Assume your array is $array $result = array(); foreach ($array as $value){ $result[$value['cat_id']][] = array( $value['sub_cat_name'],$value['sub_cat_id'] ); } PHP: May be this would help.
AsHinE: Thanks for trying but afraid its still not working for me. lmao: Yes, Im trying to get the array to echo onto a page in this structure [ ['cat_id_1' , [ ['sub_cat_name_1' , 'sub_cat_id' ] , ['sub_cat_name_2','sub_cat_id'] ] ] , [ ['cat_id_2' , [ ['sub_cat_name_2' , 'sub_cat_id' ] , ['sub_cat_name_2','sub_cat_id'] ] ] Code (markup): So for the above array it would be [ ['1' , [ ['Apples' , '1' ] , ['Oranges' , '2' ] ] ] , [ ['1' , [ ['Bike' , '3' ] , ['Boat','4'] ] ] Code (markup): Still no breakthrough unfortunately
your this array output does not make sense ( [0] => Array ( [cat_id] => 1 [sub_cat_name] => Apples [sub_cat_id] => 1 ) [1] => Array ( [cat_id] => 1 [sub_cat_name] => Oranges [sub_cat_id] => 2 ) [3] => Array ( [cat_id] => 2 [sub_cat_name] => Bike [sub_cat_id] => 3 ) [4] => Array ( [cat_id] => 2 [sub_cat_name] => Boat [sub_cat_id] => 4 ) )
Hi lmao This is the same way ive always taken mysql query results and put into an array: function get_list(){ // query database { $conn = db_connect(); $query = "select cat_id, sub_cat_name, sub_cat_id from listings"; $result = @$conn->query($query); if (!$result) return false; $result = db_result_to_array($result); return $result; } Code (markup): Put into function db_result_to_array($result) { $res_array = array(); for ($count=0; $row = $result->fetch_assoc(); $count++) $res_array[$count] = $row; return $res_array; } Code (markup): Any ideas? Cheers, Kevin
yes, sorry my bad... This problem is affecting my brain Cheers for the code, will try put it in and let you know how I get on. Really appreciate the help Kevin
Your a legend, works great.. Sorry to trouble you for one last question Just wondering how I would use the mysql query i have function get_list(){ // query database { $conn = db_connect(); $query = "select cat_id, sub_cat_name, sub_cat_id from listings"; $result = @$conn->query($query); if (!$result) return false; $result = db_result_to_array($result); return $result; } Code (markup): to transfer into your code $arr[0]=array('cat_id'=>1,'sub_cat_name'=>"Apples","sub_cat_id"=>1); $arr[1]=array('cat_id'=>1,'sub_cat_name'=>"Oranges","sub_cat_id"=>2); $arr[3]=array('cat_id'=>2,'sub_cat_name'=>"Bike","sub_cat_id"=>3); $arr[4]=array('cat_id'=>2,'sub_cat_name'=>"Boat","sub_cat_id"=>4); Code (markup): Sorry for asking but so close to finally getting it! Cheers again