Задача стоит следующая. Получен массив содержащий другие массивы, например:
$arr = array(
array(
'0' => 'Химия',
'1' => 'очная',
'2' => 'пропуск'
),
array(
'0' => 'Химия',
'1' => 'заочная',
'2' => 'пропуск'
),
array(
'0' => 'Химия',
'1' => 'очная',
'2' => 'пропуск'
),
array(
'0' => 'Физика',
'1' => 'очная',
'2' => 'пропуск'
)
);
Из этого набора нужно вытащить только уникальные наборы. Значения во всех поля будут меняться. Собственно не пойму как выбрать массивы основываясь на уникальности нескольких столбцов.
В итоге должен получить массивы:
'Химия', 'очная', 'пропуск'
'Химия', 'заочная', 'пропуск'
'Физика', 'очная', 'пропуск'
Пробовал через array_unique($arr);
, но получаю только одну первую запись
Нашел на сайте вопрос про выборку, но увы мне не подходит.
Стоит добавить, что во внутренних массивах есть еще столбцы содержащие данные также разные.
$arr = array(
array(
'0' => 'Химия',
'1' => 'очная',
'2' => 'пропуск'
),
array(
'0' => 'Химия',
'1' => 'заочная',
'2' => 'пропуск'
),
array(
'0' => 'Химия',
'1' => 'очная',
'2' => 'пропуск'
),
array(
'0' => 'Физика',
'1' => 'очная',
'2' => 'пропуск'
)
);
foreach ($arr as $key => $value) {
$set[]=$value[0].';'.$value[1].';'.$value[2];
}
foreach ($set as $key1 => $value1) {
$res[$value1]=$key1;
}
foreach ($res as $key2 => $value2) {
$main[]=explode(";", $key2);
}
print_r($main);
?>
Можете попробовать сереализовать внутренние массивы, отфильтровать, и сделать обратно десериализацаю. Пример ниже привел:
<?php
$arr = array(
array(
'0' => 'Химия',
'1' => 'очная',
'2' => 'пропуск'
),
array(
'0' => 'Химия',
'1' => 'заочная',
'2' => 'пропуск'
),
array(
'0' => 'Химия',
'1' => 'очная',
'2' => 'пропуск'
),
array(
'0' => 'Физика',
'1' => 'очная',
'2' => 'пропуск'
)
);
function _serialize($arr)
{
return implode("\t", $arr);
}
function _deserialize($data)
{
return explode("\t", $data);
}
$arr_unique = array_unique(array_map('_serialize', $arr));
$arr_unique = array_map('_deserialize', $arr_unique);
var_dump($arr_unique);
Всем привет! Я новичок, поэтому хотелось бы услышать несколько советов
Есть таблица news, в ней 5 полей id, text, title, author, dateНеобходимо вывести на странице эти данные
Нужна помощь! в строке 12: private $vacancy_category_id = 105; параметр для id 105 категории подключает функции которые прописаны ниже, сейчас параметры подключаются...