Mailinglisten-Archive |
Hi,
On Thu, Dec 09, 2004 at 10:22:14AM +0100, Sebastian Mendel wrote:
> achso, du willst einfach die ersten drei Werte des Arrays haben? ich
> hatte das irgendwie ganz anders verstanden ... die ersten drei wo was
> drinne steht ...
>
> geth kürzer: ;-)
>
> $counter = 0;
> $new_orders = array();
> foreach ( $orders as $key => $val )
> {
> $new_orders[$key] = $val;
> if ( 3 === ++$counter ) break;
> }
ich hab mir mal array_slice fuer assoziative Arrays nachgebaut, ist
zwar nicht so schoen kurz, kann dafuer aber auch mehr ;-).
--------------------------------schnipp-----------------------------
// Extrahiert einen Ausschnitt eines assoziativen Arrays
// Verhalten von $offset und $length wie bei array_slice()
function array_slice_assoc($array, $offset, $length = 0) {
if ( (!is_array( $array ))
|| (!is_int( $offset + 0))
|| (!is_int( $length +0 )) ) {
return FALSE;
}
reset ($array);
$max = count( $array );
$new_array = array();
if ( $offset < 0 ) {
$offset = $max + $offset;
}
if ( $length == 0 ) {
$length = $max;
}
elseif ( $length < 0 ) {
$length = $max + $length;
}
else {
$length = $offset + $length;
}
$i = 0;
foreach( $array as $key => $value ) {
if ( ($i >= $offset) ) {
$new_array[$key] = $value;
}
if ( ++$i == $length ) {
break;
}
}
return $new_array;
} // End function array_slice_assoc
--------------------------------schnapp-----------------------------
--
Gruss Jens
php::bar PHP Wiki - Listenarchive