Re: [PHP] PHP array unions
On Fri, Sep 14, 2012 at 2:30 AM, Matijn Woudt wrote: > > It doesn't need to be clunky.. just use array_flip and you've got the old > array again.. > Well, array_flip has it's own potential issues (duplicate values are lost, so my example of using zeros would not work.) I suppose I could duplicate the keys as the values (e.g., array('value 1' => 'value 1', 'value 2' => 'value 2', ...).) Then, the keys would allow me to utilize the nice properties of hash maps whilst maintaining the ability to work with the values as one normally does in typical array functions. Ex: $a1 = array('apples' => 'apples', 'oranges' => 'oranges', 'pears' => 'pears'); $a2 = array('oranges' => 'oranges', 'kiwi' => 'kiwi'); // can use the union operator without any additional calls and the performance is stellar $a3 = $a1 + $a2 // can use the values of the array using the convention that the value is what you expect to handle/manipulate foreach ($a3 as $val) { echo $val } Here, the clunkiness is the redundancy in the array, but, as Claude Shannon has demonstrated, redundancy isn't all bad :) Adam -- Nephtali: A simple, flexible, fast, and security-focused PHP framework http://nephtaliproject.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP array unions
Op 14 sep. 2012 07:51 schreef "Adam Richardson" het volgende: > > On Wed, Sep 12, 2012 at 2:37 PM, Sebastian Krebs wrote: > > Hi, > > > > In PHP the array is in fact a hash map, but especially it is _used_ for > > nearly everything map-, set-, ...-like thing. So in short: The is no > > operator or built-in function, that merges two arrays _and_ treat them as > > set (instead of the hashmap, what they are). Your solution is the way to go. > > Sure, I know about the underlying implementation. I was just hopeful > because several of the array functions handle the maps differently > depending on whether the keys are numeric or string or both. > > If I wanted to get cute, I could store the value in the key (e.g., > array('value 1' => 0, 'value 2' => 0, ...)), and that allows me to use > the '+' operator. In spite of the nice performance benefits of this > approach (leveraging the hashes benefits), the code that utilizes the > arrays becomes quite clunky. > > Thanks, > > Adam > It doesn't need to be clunky.. just use array_flip and you've got the old array again.. -Matijn
Re: [PHP] PHP array unions
On Wed, Sep 12, 2012 at 2:37 PM, Sebastian Krebs wrote: > Hi, > > In PHP the array is in fact a hash map, but especially it is _used_ for > nearly everything map-, set-, ...-like thing. So in short: The is no > operator or built-in function, that merges two arrays _and_ treat them as > set (instead of the hashmap, what they are). Your solution is the way to go. Sure, I know about the underlying implementation. I was just hopeful because several of the array functions handle the maps differently depending on whether the keys are numeric or string or both. If I wanted to get cute, I could store the value in the key (e.g., array('value 1' => 0, 'value 2' => 0, ...)), and that allows me to use the '+' operator. In spite of the nice performance benefits of this approach (leveraging the hashes benefits), the code that utilizes the arrays becomes quite clunky. Thanks, Adam -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP array unions
Hi, In PHP the array is in fact a hash map, but especially it is _used_ for nearly everything map-, set-, ...-like thing. So in short: The is no operator or built-in function, that merges two arrays _and_ treat them as set (instead of the hashmap, what they are). Your solution is the way to go. Regards, Sebastian Am 12.09.2012 17:10, schrieb Adam Richardson: Hi! So, PHP has the '+' array operator, which forms the union of arrays, but it does so by key. What I'm looking for is a function that forms the union of arrays based on value. Currently, I use code like the following: array_unique(array_merge($array1, $array2, $array3)); This is useful to me because I tend to program using functional programming principles. Just want to make sure I'm not missing a core function that already does this. If there's not a core function, I might just build an array_union extension because the functionality is so common in my codebases. Thanks, Adam -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] php array in different OS
you are probably getting a memory limit error, check your php.ini 2010/7/21 fyang : > Dear all, > I have a simple test code in different OS ,but it give me a different > result. > the code as follows: > $n= 5; > for($i=0;$i<$n;$i++) > { >$data[]=array("",$i,$i/1000); >echo $i," ",$data[$i][1],""; > } > echo "count:",count($data); > ?> > OS1: Red Hat Enterprise Linux Server release 5.1 >Linux 2.6.18-53.el5xen i686 i686 i386 GNU/Linux > test result: the result is correct,it can display 5 data and > count:5. > > OS2: CentOS release 5.4 > Linux 2.6.18-164.el5 x86_64 x86_64 x86_64 GNU/Linux > test result: the result is wrong,it can only display 31148 data and it can > not display count value. > I'm not sure the result relate to array capacity in different OS. > Please give me some tips,thanks in advance. > > good luck, > > Yang Fei > 2010-7-20 > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] php array in different OS
Dear Bob McConnell, Thank you for your reply. I really post the same message eight times because of the first e-mail authentication.please remove the extra e-mail in your free time. There are two servers ,the first installation of 32-bit linux(RHEL),the second installlation 64-bit linux(CENTOS). PHP version on 32-bit linux(RHEL):5.2.7 PHP version on 64-bit linux(CENTOS):5.2.13 I found this problem,because the software transplantation.In the 64-bit systems,the array seems to always have limited capacity. I'm not sure that is php version problem or need other configurations. Please give further guidance, thank you very much! best wishs, Yang Fei 2010-7-22 发件人: Bob McConnell 发送时间: 2010-07-21 20:06:36 收件人: fyang; php-general@lists.php.net 抄送: 主题: RE: [PHP] php array in different OS From: fyang > I have a simple test code in different OS ,but it give me a different > result. > the code as follows: > $n= 5; > for($i=0;$i <$n;$i++) > { > $data[]=array("",$i,$i/1000); > echo $i," ",$data[$i][1]," "; > } > echo "count:",count($data); >? > >OS1: Red Hat Enterprise Linux Server release 5.1 > Linux 2.6.18-53.el5xen i686 i686 i386 GNU/Linux >test result: the result is correct,it can display 5 data and > count:5. > >OS2: CentOS release 5.4 > Linux 2.6.18-164.el5 x86_64 x86_64 x86_64 GNU/Linux >test result: the result is wrong,it can only display 31148 data and it > can not display count value. >I'm not sure the result relate to array capacity in different OS. >Please give me some tips,thanks in advance. Did you really have to post the same message eight times? CentOS is Red Hat minus the proprietary elements, so you actually have two releases of the same OS here. The bigger question is what version of PHP are you running on each of them and how are they configured? Bob McConnell
RE: [PHP] php array in different OS
From: fyang > I have a simple test code in different OS ,but it give me a different > result. > the code as follows: > $n= 5; > for($i=0;$i<$n;$i++) > { > $data[]=array("",$i,$i/1000); > echo $i," ",$data[$i][1],""; > } > echo "count:",count($data); >?> >OS1: Red Hat Enterprise Linux Server release 5.1 > Linux 2.6.18-53.el5xen i686 i686 i386 GNU/Linux >test result: the result is correct,it can display 5 data and > count:5. > >OS2: CentOS release 5.4 > Linux 2.6.18-164.el5 x86_64 x86_64 x86_64 GNU/Linux >test result: the result is wrong,it can only display 31148 data and it > can not display count value. >I'm not sure the result relate to array capacity in different OS. >Please give me some tips,thanks in advance. Did you really have to post the same message eight times? CentOS is Red Hat minus the proprietary elements, so you actually have two releases of the same OS here. The bigger question is what version of PHP are you running on each of them and how are they configured? Bob McConnell -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP: array with null shows different with print_r and var_dump
On Wed, 2008-04-02 at 12:19 +0530, Sanjay Mantoor wrote: > Hello, > > I am new to PHP and PHP community. > > Following program outputs different values with print_r and var_dump. > > $array = array(null, NULL); > > print_r($array); prints values like below > Array > ( > [0] => > [1] => > ) > > where as var_dump($array) prints values like below > array(2) { > [0]=> > NULL// Does this convert to null to NULL? > [1]=> > NULL > } > > Can you tell me why the above difference? NULL and null are the same thing. If I'm correct var_dump() was created to solve the problem of not knowing what the datatypes are when using print_r(). Cheers, Rob. -- http://www.interjinn.com Application and Templating Framework for PHP -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP: array with null shows different with print_r and var_dump
On Tue, Apr 1, 2008 at 11:49 PM, Sanjay Mantoor <[EMAIL PROTECTED]> wrote: > Hello, > > I am new to PHP and PHP community. > > Following program outputs different values with print_r and var_dump. > > $array = array(null, NULL); > > print_r($array); prints values like below > Array > ( > [0] => > [1] => > ) > print_r converts null, which is a variable type, like integer, string, float, etc, into an empty string. > where as var_dump($array) prints values like below > array(2) { > [0]=> > NULL// Does this convert to null to NULL? null is case-insensitive, so it doesn't matter how you type it. > [1]=> > NULL > } var_dump converts null into the string "NULL". > > Can you tell me why the above difference? > -- -Casey -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP array entries max limit
On Wed, January 16, 2008 11:02 pm, Prabath Kumarasinghe wrote: > I would like to know how many entries does PHP associative array can > handle. As far as I know, the answer is: How much RAM do you have? -- Some people have a "gift" link here. Know what I want? I want you to buy a CD from some indie artist. http://cdbaby.com/from/lynch Yeah, I get a buck. So? -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP array entries max limit
Prabath Kumarasinghe wrote: > Hi All > > I would like to know how many entries does PHP associative array can > handle. Why don't you just test it? for( $i=0; ; $i++ ) { $kk[$i]=1; } Attempt#1 - 13 keys, stopped due to memory limit *M. Attempt#2 - 838 keys, memlimit 512M. Attempt#3 - 2958 keys, memlimit 2G. /Per Jessen, Zürich -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP Array question
> What I want to do is to only show 20 pictures at a time with a "Next" link > and a "Previous" link. For the first 20 only the "Next" link would show and > whenever the last set would show only the "Previous" link would. Every other > time both would show. > > Can someone point me in the right direction on how to count through the > elements until the end and back to display them? I just can't figure it out. sounds like you just might need some paging functions http://pear.php.net/package/Pager http://pear.php.net/manual/en/package.html.pager.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] php array question
>-Original Message- >From: Victor C. [mailto:[EMAIL PROTECTED] >Sent: Tuesday, November 02, 2004 3:06 AM >To: [EMAIL PROTECTED] >Subject: [PHP] php array question > > >Hi, >I have a line of php that I don't really understand. > >foreach($this->orders as $OrderID => $value) { >echo $OrderID.""; I think Problem is with this line (I am surprised to see it does not throw a parsing error. As it should !) >$OrderObject =$this->orders[$OrderID=>$value]; If $this->orders is an array of order objects then Following line should be sufficient $OrderObject =$this->orders[$OrderID]; Or $OrderObject =$value; Zareef ahmed >echo $OrderObject->OrderID."<--all the same"; >} > >I know that $this->orders is an array of "order" objects. > >the result i get from this is: > >line1. 388<--OrderID. >line2. 389<--all the same >line3. 389<--OrderID. >line4. 389<--all the same > >I'm really confused about why line 1 and line 3 have different OrderID, but line 2 and 4 have the same... I've been trying >to fix this bug for 3 hrs with no luck. Any help would be really appreciated.. >Thanks a lot -- Zareef Ahmed :: A PHP develoepr in Delhi ( India ) Homepage :: http://www.zasaifi.com -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] php array
you could referance the element id of the form something like if(window.document.form.element[1].value = "") { do_something(); } not sure of the exact js construct, but you get my idea. Jim Lucas www.bend.com - Original Message - From: "Rodrigo Peres" <[EMAIL PROTECTED]> To: "PHP" <[EMAIL PROTECTED]> Sent: Tuesday, March 12, 2002 10:10 AM Subject: [PHP] php array > Hi list, > > I think this could be an idiot question but I couldn't find an answer. > I have 4 input text in a html, and I'd like to store them as a list, so I've > named it Name[]. OK, php understand it as an array, but how can I make an > validation code with javascript to know if the user didn't typed in this > fields??? I couldn't do javascript recognize my name[] field > > > Thank's in advance > > Rodrigo > -- > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] php array
Something like this: -Original Message- From: Rodrigo Peres [mailto:[EMAIL PROTECTED]] Sent: Tuesday, March 12, 2002 10:11 AM To: PHP Subject: [PHP] php array Hi list, I think this could be an idiot question but I couldn't find an answer. I have 4 input text in a html, and I'd like to store them as a list, so I've named it Name[]. OK, php understand it as an array, but how can I make an validation code with javascript to know if the user didn't typed in this fields??? I couldn't do javascript recognize my name[] field Thank's in advance Rodrigo -- -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] PHP array or SQL problem
Thanks so much!! You guys rock! Dean - Original Message - From: "Dean Householder" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, January 15, 2002 12:34 AM Subject: [PHP] PHP array or SQL problem I've got a database with lname (lastname), fname (firstname), and nickname. What I want to do is search by either first name or last name. Either way, I display the nickname instead of the firstname if it exists. I have no problems on the last name, but when I sort by firstname, the people with nicknames that are very different come up at the place where their first name (not the displayed name) is. For example: Adam Smith Joe Schmoe Bill Somebody When Bill Somebody is really William Somebody in the database, his nickname is bill and that's what's displayed but he 'bill' shows up in 'williams' spot. Here is my SQL query: select * from employees order by fname; Should I create an array and sort it there or can I somehow query MySQL to sort by nickname only if it exists and then by fname? Dean -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
RE: [PHP] Php Array
> How can I send the values inside the array into a function > for calculation? function addValues( $arrayVar ) { $reteval = 0; foreach( $arrayVar as $element ) { $retval += $element; } return $retval; } $myArray = array( 1, 2, 3, 4, 4 ); echo addValues( $myArray ); Chris
RE: [PHP] PHP array information.
i dont quite think i understand the question, but if you want to fetch results as an array with mysql, do this: $result = mysql_query(" sql "); mysql_fetch_array($result); > -Original Message- > From: Chris Oxenreider [mailto:[EMAIL PROTECTED]] > Sent: Monday, July 09, 2001 12:39 PM > To: [EMAIL PROTECTED] > Subject: [PHP] PHP array information. > > > > Hello: > > My apologies if this has been covered before, or if i have missed it on > the php manual web pages. I am looking for some information on how to do > a perl like array with a *sql call in PHP. > > > Here is what I want to do: > > table: > problem_class > _rid (tinyint) > description (mediumtext) > > Sample data: > _riddescription > 1 open > 2 closed > 3 testing > 10 S > 11 M > 12 L > 13 XL > 20 Black > 21 Red > 22 Green > 23 Blue > > > In perl this might be accomplished by doing this: >(Note some pseudo code is used here. Assume mysql as database but > could be others like Oracle.) > >$query = "SELECT _rid,description FROM problem_class"; >$q_pointer = sql_query($query); >@problem_class = sql_associate_array_get($q_pointer); > >print "\n"; >for ($i = 0; $i < 10 ; ++$i) { >if ( $problem_class[$i] ne "") { >print " $problem_class[$i]\n"; >} >} >print "\n"; > >print "\n"; >for ($i = 10; $i < 20 ; ++$i) { >if ( $problem_class[$i] ne "") { >print " $problem_class[$i]\n"; >} >} >print "\n"; > >print "\n"; >for ($i = 20; $i < 30 ; ++$i) { >if ( $problem_class[$i] ne "") { >print " $problem_class[$i]\n"; >} >} >print "\n"; > > > This produces something very close to this: > > > open > closed > testing > > > > S > M > L > XL > > > > Black > Red > Green > Blue > > > > If I could use something like this, it would allow me to produce different > 'for' statements for each select drop down I wanted to create. One table > to maintain, and change encase politics force me to change some of > definitions with out having to do a massive sql update. This works as > long as the problem_class table is rather short (ie less than 1,000 > records). > > I know I am missing something 'obvious' in this. Your help is > appreciated. Thank you. > > > > > -- > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > Chris Oxenreider | [EMAIL PROTECTED] | http://www.state.net/~oxenreid > | MicroSoft Windows 2000: The De facto sub standard. > =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= > > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > To contact the list administrators, e-mail: [EMAIL PROTECTED] > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]