|
Posted by Jerry Stuckle on 02/09/07 13:37
Generale Cluster wrote:
> 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!
>
>
That's the difference. I prefer code which is easily understandable.
You had trouble getting it to work in the first place. What happens
when you have to look at it six months or a year from now when you have
to work on it again? You'll go through all of his again to understand
what it does.
If you want it to be a single line, make it a function call. But even
if it's multiple lines he should be able to copy and paste.
I have a similar setup for one of my customers. They maintain the
content, I maintain the (interspaced) code. They even build entirely
new pages by copying/pasting sections of html and code from other pages.
Sure, once in a while they have a problem - but not often. But they're
saving a bunch of money over having to pay me to make the frequent
content changes.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
[Back to original message]
|