| 
	
 | 
 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 
==================
 
  
Navigation:
[Reply to this message] 
 |