Существует ли какая-либо функция, обеспечивающая соответствие любого данного массива определенной структуре? Я имею в виду, что у него есть конкретные имена ключей, возможно, определенные типы значений и любая вложенная структура.
Прямо сейчас у меня есть место, где я хочу убедиться, что в массиве, проходящем мимо, есть определенные ключи, пара, содержащая определенный тип данных, и один подмассив с определенными именами ключей. Я много бегал, потому что передавал ему некорректные массивы, и, наконец, я нахожусь в точке, где у меня есть куча
if ( ! isset($arr['key1']) ) { .... }
if ( ! isset($arr['key2']) ) { .... }
if ( ! isset($arr['key3']) ) { .... }
Я бы сэкономил много времени и ужасов, если бы мог заранее проверить, что массив соответствует определенной структуре. В идеале что-то вроде
$arrModel = array(
'key1' => NULL ,
'key2' => int ,
'key3' => array(
'key1' => NULL ,
'key2' => NULL ,
),
);
if ( ! validate_array( $arrModel, $arrCandidate ) ) { ... }
Итак, я задаю вопрос: это уже существует, или я пишу это сам?