eventbrite_one_way_sync-1.0.0/src/ArrayPathfinder/ArrayPathfinder.php
src/ArrayPathfinder/ArrayPathfinder.php
<?php namespace Drupal\eventbrite_one_way_sync\ArrayPathfinder; /** * Utility to find nested items in associative arrays. */ class ArrayPathfinder implements ArrayPathfinderInterface { /** * {@inheritdoc} */ public function unset(array &$array, array $path) { $first = array_shift($path); if (array_key_exists($first, $array)) { if (count($path)) { $this->unset($array[$first], $path); } else { unset($array[$first]); } } } /** * {@inheritdoc} */ public function validatePath(array $array, array $path, $default, callable $callback) : bool { return $callback($this->get($array, $path, $default)); } /** * {@inheritdoc} */ public function get(array $array, array $path, $default) { $first = array_shift($path); if (array_key_exists($first, $array)) { if (count($path)) { return $this->get($array[$first], $path, $default); } else { return $array[$first]; } } return $default; } }