Arrays::pluck() 

\nn\t3::Arrays()->pluck($keys = NULL, $isSingleObject = false); 

Reduce / distill associative array to specific elements:

\nn\t3::Arrays( $objArr )->key('uid')->pluck('title'); // ['1'=>'title A', '2'=>'title B']
\nn\t3::Arrays( $objArr )->key('uid')->pluck(['title', 'bodytext']); // ['1'=>['title'=>'Title A', 'bodytext'=>'Content'], '2'=>...]
\nn\t3::Arrays( ['uid'=>1, 'pid'=>2] )->pluck(['uid'], true); // ['uid'=>1]
Copied!

| @return array

Source Code 

public function pluck( $keys = null, $isSingleObject = false ) {
	$arr = (array) $this;
	$pluckedArray = [];
	if ($getSingleKey = is_string($keys)) {
		$keys = [$keys];
	}
	if ($isSingleObject) {
		$arr = [$arr];
	}
	foreach ($keys as $key) {
		foreach ($arr as $n=>$v) {
			if ($getSingleKey) {
				$pluckedArray[$n] = $v[$key] ?? '';
			} else {
				if (!isset($pluckedArray[$n])) $pluckedArray[$n] = [];
				$pluckedArray[$n][$key] = $v[$key] ?? '';
			}
		}
	}
	if ($isSingleObject) {
		$pluckedArray = array_pop($pluckedArray);
	}
	$this->exchangeArray($pluckedArray);
	return $this;
}
Copied!