phpbar.de logo

Mailinglisten-Archive

[php] Array in Scheiben (lecker Käse )

[php] Array in Scheiben (lecker Käse )

Jens Giessmann jg at handcode.de
Don Dez 9 10:40:44 CET 2004


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