note 48006 added to function.array-slice

From: Date: Wed, 08 Dec 2004 21:58:18 +0000
Subject: note 48006 added to function.array-slice
Groups: php.notes 
Request: Send a blank email to php-notes+get-81549@lists.php.net to get a copy of this message
Sometimes you need to pick certain non-integer and/or non-sequential keys out of an array. Consider using the array_pick() implementation below to pull specific keys, in a specific order, out of a source array: <?php $a = array ('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4); $b = array_pick($a, array ('d', 'b')); // now: // $a = array ('a' => 1, 'c' => '3'); // $b = array ('d' => 4, 'b' => '2'); function &array_pick(&$array, $keys) { if (! is_array($array)) { trigger_error('First parameter must be an array', E_USER_ERROR); return false; } if (! (is_array($keys) || is_scalar($keys))) { trigger_error('Second parameter must be an array of keys or a scalar key', E_USER_ERROR); return false; } if (is_array($keys)) { // nothing to do } else if (is_scalar($keys)) { $keys = array ($keys); } $resultArray = array (); foreach ($keys as $key) { if (is_scalar($key)) { if (array_key_exists($key, $array)) { $resultArray[$key] = $array[$key]; unset($array[$key]); } } else { trigger_error('Supplied key is not scalar', E_USER_ERROR); return false; } } return $resultArray; } ?> ---- Manual Page -- http://www.php.net/manual/en/function.array-slice.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+48006 Delete -- http://master.php.net/manage/user-notes.php?action=delete+48006&report=yes Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+48006&report=yes&reason=bad+code Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+48006&report=yes&reason=spam Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+48006&report=yes&reason=useless+example Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+48006&report=yes&reason=contains+commercial+links Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+48006&report=yes&reason=useless+note Reject -- http://master.php.net/manage/user-notes.php?action=reject+48006&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#81549) next »