while ($selected_row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$basicinfo[] = array('schlid' => $selected_row['schlid'], 'name' => $selected_row['name'], 'class' => $selected_row['class']);
}
The above making of array will result into a array that has multiple value the array will look like this
Array
(
[0] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[1] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
[2] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[3] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
[4] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[5] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
[6] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[7] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
[8] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[9] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
[10] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[11] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
)
But i am able to remove the same value just by doing this below
$input = array_map("unserialize", array_unique(array_map("serialize", $basicinfo)));
$new_data = array_values($input);
and i will get this below
Array
(
[0] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => Math
)
[1] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[class] => English
)
)
Now what i did is to make a multidimensional array of the same query result as this
while ($selected_row = $stmt - > fetch(PDO::FETCH_ASSOC)) {
$tmp_key = $selected_row['schlid']; //adding a temp key
$basicinfo[$tmp_key]['name'] = $selected_row['name'];
$basicinfo[$tmp_key]['schlid'] = $selected_row['schlid'];
$sudky = (isset($basicinfo[$tmp_key]['Class'])) ? count($basicinfo[$tmp_key]['Class']) : 0;
$basicinfo[$tmp_key]['Class'][$sudky]['class'] = $selected_row['class'];
}
From above the result i get is
Array
(
[015-08-0011-000-01] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[Class] => Array
(
[0] => Array
(
[class] => Math
)
[1] => Array
(
[class] => English
)
[2] => Array
(
[class] => Math
)
[3] => Array
(
[class] => English
)
[4] => Array
(
[class] => Math
)
[5] => Array
(
[class] => English
)
[6] => Array
(
[class] => Math
)
[7] => Array
(
[class] => English
)
[8] => Array
(
[class] => Math
)
[9] => Array
(
[class] => English
)
[10] => Array
(
[class] => Math
)
[11] => Array
(
[class] => English
)
)
)
)
My desired out is
Array
(
[015-08-0011-000-01] => Array
(
[schlid] => 015-08-0011-000-01
[name] => John
[Class] => Array
(
[0] => Array
(
[class] => Math
)
[1] => Array
(
[class] => English
)
)
)
)
To remove duplicate elements in a multidimensional aray.
The result above is from print_r()
in php if this is relevant