|
Posted by ImOk on 07/06/06 14:33
I understand what you are doing. I changed it a little which I believe
is a little more intuitive. It may even be faster.
$data = array(
array('name' => 'Helen', 'age' => '40'),
array('name' => 'Mark', 'email' => '...@xyz.com', 'age' => '90'),
);
$column_names=array();
foreach ($data as $row) {
foreach ($row as $key => $value) {
// do other things here
if (!in_array($key,$column_names)) $column_names[]=$key;
}
}
Markus Ernst wrote:
> Hi
>
> While looping through an array I extract all keys on the fly, as in this
> example:
>
> $data = array(
> array('name' => 'Helen', 'age' => '40'),
> array('name' => 'Mark', 'email' => 'mark@xyz.com', 'age' => '90'),
> );
> $keys = array();
> foreach ($data as $row) {
> foreach ($row as $key => $value) {
> // do other things here
> $keys[$key] = 1;
> }
> }
> $column_names = array_keys($keys);
>
> Now my question is about the line
> $keys[$key] = 1;
>
> This overwrites existing entries and thus creates a set of unique keys.
> This could also be done without overwriting:
> if (!isset($keys[$key])) $keys[$key] = 1;
>
> So I wonder which is more efficient - overwriting the array entry at
> every loop, or checking for it with the if statement.
>
> Thanks for a comment
> Markus
Navigation:
[Reply to this message]
|