|
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!
[Back to original message]
|