Ключ списка и значение общих вхождений в значении - PullRequest
0 голосов
/ 10 ноября 2019
$personas = [
'Franz' => [
  'interests' => 'all',
  'gender' => 'maskulin'
],
'Sissi' => [
  'interests' => 'kitesurfing', 'tennis',
  'gender' => 'feminin'
],
'Egon' => [
  'interests' => 'kitesurfing', 'cinema';
  'gender' => 'maskulin'
],
'Maria' => [
  'interests' => 'cinema', 'soccer',
  'gender' => 'feminin'
]
];

Перечислите данные лиц, которые указали в интересах всех или Кайтсерфинг

 foreach($personas as $person => $kitesurfing) {
        echo .$person.' is '.$gender.', ';
    }
   echo 'and all '.$personal_number.' '.$kitesurfing.' like!';

ожидаемый результат

Франц - это маскалин, Сисси - это феминин, Эгон - это маскалин, и все 3 кайтсерфинг как!

1 Ответ

1 голос
/ 10 ноября 2019
<?php
$personas = [
    'Franz' => [
        'interests' => ['all'],
        'gender' => 'maskulin'
    ],
    'Sissi' => [
        'interests' => ['kitesurfing', 'tennis'],
        'gender' => 'feminin'
    ],
    'Egon' => [
        'interests' => ['kitesurfing', 'cinema'],
        'gender' => 'maskulin'
    ],
    'Maria' => [
        'interests' => ['cinema', 'soccer'],
        'gender' => 'feminin'
    ]
];
$interests = ['all', 'kitesurfing'];
$filtered = array_filter($personas, function($v) use ($interests) {
    return array_intersect($interests, $v['interests']);
});
var_export($filtered);

Выход:

array (
    'Franz' => 
    array (
    'interests' => 
    array (
        0 => 'all',
    ),
    'gender' => 'maskulin',
    ),
    'Sissi' => 
    array (
    'interests' => 
    array (
        0 => 'kitesurfing',
        1 => 'tennis',
    ),
    'gender' => 'feminin',
    ),
    'Egon' => 
    array (
    'interests' => 
    array (
        0 => 'kitesurfing',
        1 => 'cinema',
    ),
    'gender' => 'maskulin',
    ),
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...