You are here: Re: create array from members of an array of objects « PHP Programming Language « IT news, forums, messages
Re: create array from members of an array of objects

Posted by Generale Cluster on 02/09/07 11:20

Jerry Stuckle ha scritto:
> Rik wrote:
>> Generale Cluster <alex@carrarosoftmasters.net> wrote:
>>
>>> Hello,
>>> I have the following situation:
>>>
>>> $list[] is an array of MyElement objects.
>>>
>>> MyElement has two members: MyElement->member1; MyElement->member2;
>>>
>>> What I want is to get the following:
>>>
>>> $newlist[] so that:
>>>
>>> $newlist[0]=$list[0]->member2;
>>> $newlist[1]=$list[1]->member2;
>>> $newlist[2]=$list[2]->member2;
>>> ...
>>>
>>> I need to do this using A SINGLE LINE OF CODE.
>>> Is it possible? How to do this?
>>
>> Nothing _needs_ to be done in a single line of code, and for some
>> actions you shouldn't even want it for readability.
>>
>>> I tried with:
>>>
>>> array_walk($list,create_function('$a,$b,$result','$result[] =
>>> $a->member2;'), &$result);
>>
>> Tssk, single line, but a create_function()... That's cheating :P
>>
>> $newlist = array_map(create_function('$v','return $v->member2'),$list);
>>
>> --Rik Wasmus
>
> Rik,
>
> Sounds like a homework assignment to me... :-)
>
>

Hi, thanks to Rik for the answer; it's exactly what I intended.
It's not a homework assignment, I simply want to write code which is
easy to integrate with HTML. I'm working together with another person
who is not a programmer: he's an HTML author and I need to make the code
structure as essential as possible. I've coded my own generic tag
library which generates html code from data and in this particular case
I have a function which build a "select multiple" HTML tag.
So, in my html page I have the following line:

<?php
fillHTMLSelectMultiple($aValues,"author[]","",array_map(create_function('$a','return
$a->author_id;'),$resource->aAuthors),'size="5"')?>

- $aValues is an array containing the key-value couples to be displayed
in the select.
- "author[]" is the name and id of the HTML tag
- array_map(...) contains an array the keys which have to appear
preselected in the select control.
- $resource is an object which is loaded by a self-made CRUD handler and
contains a member variable which is an array of "MyElement" objects
(where member2 is the authorId).

This way, my friend, who does not know php, is able to move the select
anywhere on the page by simply moving the php code line, and I do not
risk to have my code corrupted by a mistake by my friend.
I know I could build my array of selected values previously in my code,
but I got the question in my mind and I physiologically NEEDED to have
an answer :-)

I don't know if this may be called "extreme programming" ?
I'd rather call it "academic fury" :-D

bye!

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация