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