Работа с многомерными массивами — распространенная задача при разработке PHP. Иногда вам может потребоваться извлечь уникальный массив из многомерного массива на основе определенного значения. В этой записи блога мы рассмотрим различные методы достижения этой цели в PHP, сопровождаемые разговорными объяснениями и примерами кода.
Метод 1: использование цикла и функции in_array()
Один простой подход — перебирать многомерный массив с помощью циклов и проверять наличие повторяющихся значений с помощью функции in_array(). Вот пример:
function getUniqueArray($multiArray, $value) {
$uniqueArray = [];
foreach ($multiArray as $subArray) {
if (!in_array($value, $subArray)) {
$uniqueArray[] = $subArray;
}
}
return $uniqueArray;
}
$multiArray = [
['apple', 'banana', 'cherry'],
['orange', 'banana', 'apple'],
['grape', 'mango', 'cherry'],
];
$uniqueArray = getUniqueArray($multiArray, 'apple');
print_r($uniqueArray);
Метод 2: использование функции array_reduce()
Другой подход использует функцию array_reduce() для фильтрации повторяющихся значений из многомерного массива. Вот пример:
function filterDuplicates($carry, $item) {
if (!in_array($item, $carry)) {
$carry[] = $item;
}
return $carry;
}
function getUniqueArray($multiArray, $value) {
$uniqueArray = array_reduce($multiArray, 'filterDuplicates', []);
return array_filter($uniqueArray, function ($subArray) use ($value) {
return !in_array($value, $subArray);
});
}
$multiArray = [
['apple', 'banana', 'cherry'],
['orange', 'banana', 'apple'],
['grape', 'mango', 'cherry'],
];
$uniqueArray = getUniqueArray($multiArray, 'apple');
print_r($uniqueArray);
Метод 3: использование функций array_map() и array_unique()
Мы также можем объединить функции array_map() и array_unique() для извлечения уникального массива. Вот пример:
function getUniqueArray($multiArray, $value) {
$uniqueArray = array_map('array_unique', $multiArray);
return array_filter($uniqueArray, function ($subArray) use ($value) {
return !in_array($value, $subArray);
});
}
$multiArray = [
['apple', 'banana', 'cherry'],
['orange', 'banana', 'apple'],
['grape', 'mango', 'cherry'],
];
$uniqueArray = getUniqueArray($multiArray, 'apple');
print_r($uniqueArray);
В этой статье мы рассмотрели три различных метода извлечения уникального массива из многомерного массива на основе определенного значения в PHP. Используя циклы, функции массива и функции обратного вызова, вы можете эффективно отфильтровывать повторяющиеся значения и получать желаемый результат. Выберите метод, который соответствует вашим потребностям и стилю кодирования.