Reputation: 571
I am new to PHP Codeigniter. I have a database inner join query in that I am fetching category id, category name, subcategory id and subcategory name as shown below.
I am figuring out the way to create multidimensional array with category id, name and subcategories details as an in it.
e.g.
Array[0]=>Array ( [category_id] => 1 [category_name] => Computer [sub] =>
Array ([0]=> [subcategory_id] => 1 [subcategory_name] => C Programming )
[1]=> [subcategory_id] => 2 [subcategory_name] => Website Development)
[2]=> [subcategory_id] => 4 [subcategory_name] => Java))
Array[1]=>Array ( [category_id] => 2 [category_name] => Robotics [sub] =>
Array ( [subcategory_id] => 3 [subcategory_name] => Robo Wars))
Thanks
Upvotes: 1
Views: 5201
Reputation: 963
You didn't post your query, but I'll assume it looks something like this;
$sql = 'SELECT whatever FROM my_table WHERE category = ?';
$data = array(
$category
);
$query = $this->db
->query( $sql, $data )
->result_array();
Adding the ->result_array()
function to your query will return an associative array instead of an object.
Upvotes: 1
Reputation: 6344
Suppose the following is your result array from db
$queryResult = array(
array('category_id'=>1,'category_name'=>'Computer','subcategory_id'=>1,'subcategory_name'=>'C Programming','category_id'=>'1'),
array('category_id'=>1,'category_name'=>'Computer','subcategory_id'=>2,'subcategory_name'=>'Website Development','category_id'=>'1'),
array('category_id'=>1,'category_name'=>'Computer','subcategory_id'=>4,'subcategory_name'=>'Java','category_id'=>'1'),
array('category_id'=>2,'category_name'=>'Robotics','subcategory_id'=>3,'subcategory_name'=>'Robo Wars','category_id'=>'2'),
);
Then you could try
$result = array();
foreach($queryResult as $arr){
$result[$arr['category_id']]['category_id']= $arr['category_id'];
$result[$arr['category_id']]['category_name'] = $arr['category_name'];
$result[$arr['category_id']]['sub'][]= array('subcategory_id'=>$arr['subcategory_id'],'subcategory_name'=>$arr['subcategory_name']);
}
Hope this is helpful
Upvotes: 2