- var_dump: documentation ( source)
- array_merge: documentation ( source)
<?php
function coolPluck($array, $allowed) {
$output = array();
foreach($allowed as $keyToFind) {
foreach($array as $k => $v) {
if($k === $keyToFind) {
$output[$keyToFind] = $v;
}
if(is_array($v)) {
$results = coolPluck($v, $allowed);
if (isset($output[$keyToFind]) && isset($results[$keyToFind])) {
$output[$keyToFind] = array_merge((array)$output[$keyToFind], (array)$results[$keyToFind]);
}
}
}
}
return $output;
}
$testArray = array('test' => array('percy' => array('percy' => 'hatcherson'), 'percy' => array('mitchell', 'anderson')));
var_dump(coolPluck($testArray, array('percy')));