Re: [PHP] array_pop() with key-value pair ???

2007-02-16 Thread Robin Vickery

On 16/02/07, Eli [EMAIL PROTECTED] wrote:

Hi,

Why isn't there a function that acts like array_pop() returns a pair of
key-value rather than the value only ?

Reason is, that in order to pop the key-value pair, you do:
?php
$arr = array('a'=1,'b'=2,'c'=3,'d'=4);
$arr_keys = array_keys($arr);
$key = array_pop($arr_keys);
$value = $arr[$key];
?

I benchmarked array_keys() function and it is very slow on big arrays
since PHP has to build the array.


benchmark this:

end($arr);
list($key, $value) = each($arr);

-robin

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] array_pop() with key-value pair ???

2007-02-16 Thread Németh Zoltán
2007. 02. 16, péntek keltezéssel 10.23-kor Robin Vickery ezt írta:
 On 16/02/07, Eli [EMAIL PROTECTED] wrote:
  Hi,
 
  Why isn't there a function that acts like array_pop() returns a pair of
  key-value rather than the value only ?
 
  Reason is, that in order to pop the key-value pair, you do:
  ?php
  $arr = array('a'=1,'b'=2,'c'=3,'d'=4);
  $arr_keys = array_keys($arr);
  $key = array_pop($arr_keys);
  $value = $arr[$key];
  ?
 
  I benchmarked array_keys() function and it is very slow on big arrays
  since PHP has to build the array.
 
 benchmark this:
 
 end($arr);
 list($key, $value) = each($arr);

array_pop also removes the element from the array so add one more line:
unset($arr[$key]);

greets
Zoltán Németh

 
 -robin
 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] array_pop() with key-value pair ???

2007-02-16 Thread Robin Vickery

On 16/02/07, Németh Zoltán [EMAIL PROTECTED] wrote:

2007. 02. 16, péntek keltezéssel 10.23-kor Robin Vickery ezt írta:
 On 16/02/07, Eli [EMAIL PROTECTED] wrote:
  Hi,
 
  Why isn't there a function that acts like array_pop() returns a pair of
  key-value rather than the value only ?
 
  Reason is, that in order to pop the key-value pair, you do:
  ?php
  $arr = array('a'=1,'b'=2,'c'=3,'d'=4);
  $arr_keys = array_keys($arr);
  $key = array_pop($arr_keys);
  $value = $arr[$key];
  ?
 
  I benchmarked array_keys() function and it is very slow on big arrays
  since PHP has to build the array.

 benchmark this:

 end($arr);
 list($key, $value) = each($arr);

array_pop also removes the element from the array so add one more line:
unset($arr[$key]);


Yeah, but he's not actually popping the last element of $arr, he's
just using it to get the last key from $arr_keys.

 -robin

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] array_pop() with key-value pair ???

2007-02-16 Thread Németh Zoltán
2007. 02. 16, péntek keltezéssel 10.47-kor Robin Vickery ezt írta:
 On 16/02/07, Németh Zoltán [EMAIL PROTECTED] wrote:
  2007. 02. 16, péntek keltezéssel 10.23-kor Robin Vickery ezt írta:
   On 16/02/07, Eli [EMAIL PROTECTED] wrote:
Hi,
   
Why isn't there a function that acts like array_pop() returns a pair of
key-value rather than the value only ?
   
Reason is, that in order to pop the key-value pair, you do:
?php
$arr = array('a'=1,'b'=2,'c'=3,'d'=4);
$arr_keys = array_keys($arr);
$key = array_pop($arr_keys);
$value = $arr[$key];
?
   
I benchmarked array_keys() function and it is very slow on big arrays
since PHP has to build the array.
  
   benchmark this:
  
   end($arr);
   list($key, $value) = each($arr);
 
  array_pop also removes the element from the array so add one more line:
  unset($arr[$key]);
 
 Yeah, but he's not actually popping the last element of $arr, he's
 just using it to get the last key from $arr_keys.

well, sorry, I didn't examine his code just read his original question
saying a function that acts like array_pop()

it's now up to him to decide whether he wants to unset that element or
not :)

greets
Zoltán Németh

 
   -robin
 

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP] array_pop() with key-value pair ???

2007-02-16 Thread Eli

Robin Vickery wrote:

On 16/02/07, Eli [EMAIL PROTECTED] wrote:

Hi,

Why isn't there a function that acts like array_pop() returns a pair of
key-value rather than the value only ?

Reason is, that in order to pop the key-value pair, you do:
?php
$arr = array('a'=1,'b'=2,'c'=3,'d'=4);
$arr_keys = array_keys($arr);
$key = array_pop($arr_keys);
$value = $arr[$key];
?

I benchmarked array_keys() function and it is very slow on big arrays
since PHP has to build the array.


benchmark this:

end($arr);
list($key, $value) = each($arr);


Thanks! that benchmarks with normal speed.. :-)

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP] array_pop() with key-value pair ???

2007-02-15 Thread Eli

Hi,

Why isn't there a function that acts like array_pop() returns a pair of 
key-value rather than the value only ?


Reason is, that in order to pop the key-value pair, you do:
?php
$arr = array('a'=1,'b'=2,'c'=3,'d'=4);
$arr_keys = array_keys($arr);
$key = array_pop($arr_keys);
$value = $arr[$key];
?

I benchmarked array_keys() function and it is very slow on big arrays 
since PHP has to build the array. While array_pop() can be acceleraed by 
the guts of PHP engine.


-thanks

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php