RE: [PHP] in_array - what the...
-Original Message- From: Gary . [mailto:php-gene...@garydjones.name] Sent: 25 June 2010 08:18 To: PHP Subject: [PHP] in_array - what the... If I have an array that looks like array(1) { [mac_address]= string(2) td } and I call if (in_array($name, self::$aboveArray)) with $name as string(11) mac_address what should be the result? FALSE -- in_array checks the *values*, not the keys, so would be looking at the td for this element. To do what you want to do, simply do an isset(): if (isset($array['mac_address'])): // do stuff with $array['mac_address'] else: // it doesn't exist endif; Cheers! Mike -- Mike Ford, Electronic Information Developer, Libraries and Learning Innovation, Leeds Metropolitan University, C507, Civic Quarter Campus, Woodhouse Lane, LEEDS, LS1 3HE, United Kingdom Email: m.f...@leedsmet.ac.uk Tel: +44 113 812 4730 To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array - what the...
Ford, Mike writes: -Original Message- If I have an array that looks like array(1) { [mac_address]= string(2) td } and I call if (in_array($name, self::$aboveArray)) with $name as string(11) mac_address what should be the result? FALSE -- in_array checks the *values*, not the keys, so would be looking at the td for this element. Agh! So it does. You know what's worse? I even looked at the documentation of the function this morning wondering if that's what the problem was and *still* didn't see it! *slinks away in embarrassment* -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] in_array - what the...
-Original Message- From: Gary . [mailto:php-gene...@garydjones.name] Sent: 25 June 2010 09:14 To: PHP Subject: Re: [PHP] in_array - what the... Ford, Mike writes: -Original Message- If I have an array that looks like array(1) { [mac_address]= string(2) td } and I call if (in_array($name, self::$aboveArray)) with $name as string(11) mac_address what should be the result? FALSE -- in_array checks the *values*, not the keys, so would be looking at the td for this element. Agh! So it does. You know what's worse? I even looked at the documentation of the function this morning wondering if that's what the problem was and *still* didn't see it! *slinks away in embarrassment* Not to worry -- happens to the best of us. (Been there, done that, got a wardrobe full of T-shirts!) Cheers! Mike -- Mike Ford, Electronic Information Developer, Libraries and Learning Innovation, Leeds Metropolitan University, C507, Civic Quarter Campus, Woodhouse Lane, LEEDS, LS1 3HE, United Kingdom Email: m.f...@leedsmet.ac.uk Tel: +44 113 812 4730 To view the terms under which this email is distributed, please go to http://disclaimer.leedsmet.ac.uk/email.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] in_array - what the...
-Original Message- From: Gary . [mailto:php-gene...@garydjones.name] Sent: Friday, June 25, 2010 1:14 AM To: PHP Subject: Re: [PHP] in_array - what the... Ford, Mike writes: -Original Message- If I have an array that looks like array(1) { [mac_address]= string(2) td } and I call if (in_array($name, self::$aboveArray)) with $name as string(11) mac_address what should be the result? FALSE -- in_array checks the *values*, not the keys, so would be looking at the td for this element. Agh! So it does. You know what's worse? I even looked at the documentation of the function this morning wondering if that's what the problem was and *still* didn't see it! *slinks away in embarrassment* Why do this in_array() business?? Just do this... if (self::$aboveArray[$name]) { //something interesting here } -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] in_array - what the...
From: Daevid Vincent Why do this in_array() business?? Just do this... if (self::$aboveArray[$name]) { //something interesting here } Does that gibberish actually do something? It doesn't make any sense to me, while in_array() actually looks like what it does. Bob McConnell -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array - what the...
On 25 June 2010 19:58, Bob McConnell r...@cbord.com wrote: From: Daevid Vincent Why do this in_array() business?? Just do this... if (self::$aboveArray[$name]) { //something interesting here } Does that gibberish actually do something? It doesn't make any sense to me, while in_array() actually looks like what it does. Gibberish?? Probably a good time to go look up some php tutorials. Apart from that, it's rather bad form as a missing index will create a notice at the least. The isset snippet is better, though if you care about finding null values you need to go the route of array_keys(). Regards Peter -- hype WWW: http://plphp.dk / http://plind.dk LinkedIn: http://www.linkedin.com/in/plind BeWelcome/Couchsurfing: Fake51 Twitter: http://twitter.com/kafe15 /hype -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] in_array - what the...
From: Peter Lind On 25 June 2010 19:58, Bob McConnell r...@cbord.com wrote: From: Daevid Vincent Why do this in_array() business?? Just do this... if (self::$aboveArray[$name]) { //something interesting here } Does that gibberish actually do something? It doesn't make any sense to me, while in_array() actually looks like what it does. Gibberish?? Probably a good time to go look up some php tutorials. No thanks. I tried to figure out that double colon nonsense over a decade ago as part of an OOP development team. I still don't understand most of the code written during those two years, even though I still maintain parts of it. All I see is a lot of unnecessary overhead with no significant return on the investment. I'll stick with the tried and true procedural notation, at least until I retire next year. Bob McConnell -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
On 20 Nov 2008, at 23:09, Ashley Sheridan wrote: On Thu, 2008-11-20 at 09:25 +, Stut wrote: On 20 Nov 2008, at 06:55, Yashesh Bhatia wrote: I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? That's weird, 5.2.6 does the same thing. There's actually a comment about this on the in_array manual page from james dot ellis at gmail dot com... quote Be aware of oddities when dealing with 0 (zero) values in an array... This script: ?php $array = array('testing',0,'name'); var_dump($array); //this will return true var_dump(in_array('foo', $array)); //this will return false var_dump(in_array('foo', $array, TRUE)); ? It seems in non strict mode, the 0 value in the array is evaluating to boolean FALSE and in_array returns TRUE. Use strict mode to work around this peculiarity. This only seems to occur when there is an integer 0 in the array. A string '0' will return FALSE for the first test above (at least in 5.2.6). /quote So use strict mode and this problem will go away. Oh, and please read the manual before asking a question in future. -Stut -- http://stut.net/ What about using the === and !== comparisons to compare and make sure that 0 is not giving a false false. That's effectively what using strict mode does. RTFM please. -Stut -- http://stut.net/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
On Fri, 2008-11-21 at 09:11 +, Stut wrote: On 20 Nov 2008, at 23:09, Ashley Sheridan wrote: On Thu, 2008-11-20 at 09:25 +, Stut wrote: On 20 Nov 2008, at 06:55, Yashesh Bhatia wrote: I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? That's weird, 5.2.6 does the same thing. There's actually a comment about this on the in_array manual page from james dot ellis at gmail dot com... quote Be aware of oddities when dealing with 0 (zero) values in an array... This script: ?php $array = array('testing',0,'name'); var_dump($array); //this will return true var_dump(in_array('foo', $array)); //this will return false var_dump(in_array('foo', $array, TRUE)); ? It seems in non strict mode, the 0 value in the array is evaluating to boolean FALSE and in_array returns TRUE. Use strict mode to work around this peculiarity. This only seems to occur when there is an integer 0 in the array. A string '0' will return FALSE for the first test above (at least in 5.2.6). /quote So use strict mode and this problem will go away. Oh, and please read the manual before asking a question in future. -Stut -- http://stut.net/ What about using the === and !== comparisons to compare and make sure that 0 is not giving a false false. That's effectively what using strict mode does. RTFM please. -Stut Hey, chill. If you offer advice, don't be so offensive to everyone. Ash www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
On 22 Nov 2008, at 00:06, Ashley Sheridan wrote: On Fri, 2008-11-21 at 09:11 +, Stut wrote: On 20 Nov 2008, at 23:09, Ashley Sheridan wrote: On Thu, 2008-11-20 at 09:25 +, Stut wrote: On 20 Nov 2008, at 06:55, Yashesh Bhatia wrote: I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? That's weird, 5.2.6 does the same thing. There's actually a comment about this on the in_array manual page from james dot ellis at gmail dot com... quote Be aware of oddities when dealing with 0 (zero) values in an array... This script: ?php $array = array('testing',0,'name'); var_dump($array); //this will return true var_dump(in_array('foo', $array)); //this will return false var_dump(in_array('foo', $array, TRUE)); ? It seems in non strict mode, the 0 value in the array is evaluating to boolean FALSE and in_array returns TRUE. Use strict mode to work around this peculiarity. This only seems to occur when there is an integer 0 in the array. A string '0' will return FALSE for the first test above (at least in 5.2.6). /quote So use strict mode and this problem will go away. Oh, and please read the manual before asking a question in future. -Stut -- http://stut.net/ What about using the === and !== comparisons to compare and make sure that 0 is not giving a false false. That's effectively what using strict mode does. RTFM please. -Stut Hey, chill. If you offer advice, don't be so offensive to everyone. I don't believe I was being offensive, you're clearly a very delicate little flower. The way I saw it you made a suggestion without understanding how to use the function in question. In my opinion RTFM is a perfectly reasonable response to that. -Stut -- http://stut.net/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
On 20 Nov 2008, at 06:55, Yashesh Bhatia wrote: I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? That's weird, 5.2.6 does the same thing. There's actually a comment about this on the in_array manual page from james dot ellis at gmail dot com... quote Be aware of oddities when dealing with 0 (zero) values in an array... This script: ?php $array = array('testing',0,'name'); var_dump($array); //this will return true var_dump(in_array('foo', $array)); //this will return false var_dump(in_array('foo', $array, TRUE)); ? It seems in non strict mode, the 0 value in the array is evaluating to boolean FALSE and in_array returns TRUE. Use strict mode to work around this peculiarity. This only seems to occur when there is an integer 0 in the array. A string '0' will return FALSE for the first test above (at least in 5.2.6). /quote So use strict mode and this problem will go away. Oh, and please read the manual before asking a question in future. -Stut -- http://stut.net/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
On Thu, 2008-11-20 at 09:25 +, Stut wrote: On 20 Nov 2008, at 06:55, Yashesh Bhatia wrote: I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? That's weird, 5.2.6 does the same thing. There's actually a comment about this on the in_array manual page from james dot ellis at gmail dot com... quote Be aware of oddities when dealing with 0 (zero) values in an array... This script: ?php $array = array('testing',0,'name'); var_dump($array); //this will return true var_dump(in_array('foo', $array)); //this will return false var_dump(in_array('foo', $array, TRUE)); ? It seems in non strict mode, the 0 value in the array is evaluating to boolean FALSE and in_array returns TRUE. Use strict mode to work around this peculiarity. This only seems to occur when there is an integer 0 in the array. A string '0' will return FALSE for the first test above (at least in 5.2.6). /quote So use strict mode and this problem will go away. Oh, and please read the manual before asking a question in future. -Stut -- http://stut.net/ What about using the === and !== comparisons to compare and make sure that 0 is not giving a false false. Ash www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
2008/11/20 Stut [EMAIL PROTECTED]: On 20 Nov 2008, at 06:55, Yashesh Bhatia wrote: I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? That's weird, 5.2.6 does the same thing. There's actually a comment about this on the in_array manual page from james dot ellis at gmail dot com... quote Be aware of oddities when dealing with 0 (zero) values in an array... This script: ?php $array = array('testing',0,'name'); var_dump($array); //this will return true var_dump(in_array('foo', $array)); //this will return false var_dump(in_array('foo', $array, TRUE)); ? It seems in non strict mode, the 0 value in the array is evaluating to boolean FALSE and in_array returns TRUE. Use strict mode to work around this peculiarity. This only seems to occur when there is an integer 0 in the array. A string '0' will return FALSE for the first test above (at least in 5.2.6). /quote So use strict mode and this problem will go away. Oh, and please read the manual before asking a question in future. -Stut I wouldn't consider it weird; it's just how PHP handles loose type comparisons. I would certainly agree that it's not terribly obvious why it happens, though. :) That said, it's consistent with PHP behaviour. James Ellis almost got it right in his note. As I already noted, it's not because of a conversion to boolean FALSE, but a conversion to integer 0. You can test this by substituting FALSE for the 0 in the array in the example and trying it. Torben -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array breaks down for 0 as value
2008/11/19 Yashesh Bhatia [EMAIL PROTECTED]: Hi. I wanted to use in_array to verify the results of a form submission for a checkbox and found an interesting behaviour. $ php -v PHP 5.2.5 (cli) (built: Jan 12 2008 14:54:37) $ $ cat in_array2.php ?php $node_review_types = array( 'page' = 'page', 'story' = 'story', 'nodereview' = 'abc', ); if (in_array('page', $node_review_types)) { print page found in node_review_types\n; } if (in_array('nodereview', $node_review_types)) { print nodereview found in node_review_types\n; } ? $ php in_array2.php page found in node_review_types $ This works fine. but if i change the value of the key 'nodereview' to 0 it breaks down. $ diff in_array2.php in_array3.php 6c6 'nodereview' = 'abc', --- 'nodereview' = 0, $ $ php in_array3.php page found in node_review_types nodereview found in node_review_types $ Any reason why in_array is returning TRUE when one has a 0 value on the array ? Thanks. Hi Yasheed, It looks like you've found the reason for the existence of the optional third argument to in_array(): 'strict'. In your second example (in_array3.php), what happens is that the value of $node_review_types['nodereview'] is 0 (an integer), so it is compared against the integer value of the first argument to in_array(), which is also 0 (in PHP, the integer value of a string with no leading numerals is 0). In other words, in_array() first looks at the first element of $node_review_types and finds that it is a string, so it compares that value as a string against the string value of its first argument ('nodereview'). Same goes for the second element of $node_review_types. However, when it comes time to check the third element, in_array() sees that it is an integer (0) and thus compares it against the integer value of 'nodereview' (also 0), and returns true. Make any sense? The problem goes away if you give a true value as the third argument to in_array(): this tells it to check the elements of the given array for type as well as value--i.e., it tells in_array() to not automatically cast the value being searched for to the type of the array element being checked. Torben -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array() related problem
Hi, Thanks for your reply. After a sleep overnight I found I said something really stupid. Arrays are compared in deep, and also for objects. I really forgot the old PHP4 way and thought PHP5 compares object simply by address when using ==, which is not the real case. I need to use === for comparing objects of the same instance. And thanks Tom for pointing out to use the strict parameter. On 11/4/06, Richard Lynch [EMAIL PROTECTED] wrote: Try providing a custom comparison function. Almost for sure, PHP is attempting to test the == by a deeper scan than you think. On Fri, November 3, 2006 10:56 am, tamcy wrote: Hello all, I'm new to this list. To not flooding the bug tracking system I hope to clarify some of my understanding here. I am referring to the (now bogus) bug report http://bugs.php.net/bug.php?id=39356edit=2. This happens after my upgrade to PHP 5.2, where the code shown produces a Fatal error: Nesting level too deep - recursive dependency?. Same testing code reproduced below: ?php class A { public $b; } class B { public $a; } $a = new A; $b = new B; $b-a = $a; $a-b = $b; $test = array($a, $b); var_dump(in_array($a, $test)); I think this is not rare for a child item to have knowledge about its parent, forming a cross-reference. This code runs with no problem in PHP5.1.6, but not in 5.2. Ilia kindly points out that In php 5 objects are passed by reference, so your code does in fact create a circular dependency.. I know the passed by reference rule. What I'm now puzzled is, why this should lead to an error. To my knowledge, despite the type-casting issue and actual algorithm, in_array() should actually do nothing more than: function mimic_in_array($search, $list) { foreach ($list as $item) if ($search == $item) return true; return false; } Which means: 1. in_array() isn't multi-dimensional. 2. in_array() doesn't care about the properties of any object. That is, I don't expect in_array() to nest through all available inner arrays for a match, not to mention those are object properties, not arrays. So here is the question: Why should in_array() throws such a Fatal error: Nesting level too deep error? Why should it care? Is there any behaviour I don't know? Thanks all in advance. Tamcy -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Some people have a gift link here. Know what I want? I want you to buy a CD from some starving artist. http://cdbaby.com/browse/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] in_array() related problem
Try like this: var_dump(in_array($a, $test, true)); Richard Lynch wrote: Try providing a custom comparison function. Almost for sure, PHP is attempting to test the == by a deeper scan than you think. On Fri, November 3, 2006 10:56 am, tamcy wrote: Hello all, I'm new to this list. To not flooding the bug tracking system I hope to clarify some of my understanding here. I am referring to the (now bogus) bug report http://bugs.php.net/bug.php?id=39356edit=2. This happens after my upgrade to PHP 5.2, where the code shown produces a Fatal error: Nesting level too deep - recursive dependency?. Same testing code reproduced below: ?php class A { public $b; } class B { public $a; } $a = new A; $b = new B; $b-a = $a; $a-b = $b; $test = array($a, $b); var_dump(in_array($a, $test)); I think this is not rare for a child item to have knowledge about its parent, forming a cross-reference. This code runs with no problem in PHP5.1.6, but not in 5.2. Ilia kindly points out that In php 5 objects are passed by reference, so your code does in fact create a circular dependency.. I know the passed by reference rule. What I'm now puzzled is, why this should lead to an error. To my knowledge, despite the type-casting issue and actual algorithm, in_array() should actually do nothing more than: function mimic_in_array($search, $list) { foreach ($list as $item) if ($search == $item) return true; return false; } Which means: 1. in_array() isn't multi-dimensional. 2. in_array() doesn't care about the properties of any object. That is, I don't expect in_array() to nest through all available inner arrays for a match, not to mention those are object properties, not arrays. So here is the question: Why should in_array() throws such a Fatal error: Nesting level too deep error? Why should it care? Is there any behaviour I don't know? Thanks all in advance. Tamcy -- 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] in_array() related problem
Try providing a custom comparison function. Almost for sure, PHP is attempting to test the == by a deeper scan than you think. On Fri, November 3, 2006 10:56 am, tamcy wrote: Hello all, I'm new to this list. To not flooding the bug tracking system I hope to clarify some of my understanding here. I am referring to the (now bogus) bug report http://bugs.php.net/bug.php?id=39356edit=2. This happens after my upgrade to PHP 5.2, where the code shown produces a Fatal error: Nesting level too deep - recursive dependency?. Same testing code reproduced below: ?php class A { public $b; } class B { public $a; } $a = new A; $b = new B; $b-a = $a; $a-b = $b; $test = array($a, $b); var_dump(in_array($a, $test)); I think this is not rare for a child item to have knowledge about its parent, forming a cross-reference. This code runs with no problem in PHP5.1.6, but not in 5.2. Ilia kindly points out that In php 5 objects are passed by reference, so your code does in fact create a circular dependency.. I know the passed by reference rule. What I'm now puzzled is, why this should lead to an error. To my knowledge, despite the type-casting issue and actual algorithm, in_array() should actually do nothing more than: function mimic_in_array($search, $list) { foreach ($list as $item) if ($search == $item) return true; return false; } Which means: 1. in_array() isn't multi-dimensional. 2. in_array() doesn't care about the properties of any object. That is, I don't expect in_array() to nest through all available inner arrays for a match, not to mention those are object properties, not arrays. So here is the question: Why should in_array() throws such a Fatal error: Nesting level too deep error? Why should it care? Is there any behaviour I don't know? Thanks all in advance. Tamcy -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- Some people have a gift link here. Know what I want? I want you to buy a CD from some starving artist. http://cdbaby.com/browse/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] in_array w/statement
reason it seems to always be true, ... something i'm doing wrong? btw, i cannot add the in_array to the statement because if the $buddylist is empty it will generate errors because of the empty implode. you could add the is_array() check. $buddylist = preg_split('/( )+/', trim($userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY); if($buddylist) { $buddy = in_array($uname['uid'], array(implode(',', $buddylist))); } not sure I understand this, implode returns a string, then you are putting that string into the array() function. I dont know what kind of data you would get back from that. $buddylist should already be an array. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array w/statement
yeah, you're right though.. i had to use explode not implode eg, if(in_array($uname['uid'], explode(' ', trim($userinfo['buddylist'] so i ditched the preg_split() cheers. - Original Message - From: Jason Wong [EMAIL PROTECTED] To: [EMAIL PROTECTED] Sent: Thursday, December 16, 2004 3:39 PM Subject: Re: [PHP] in_array w/statement On Friday 17 December 2004 02:33, Sebastian wrote: I cannot solve this problem,. sorry if this looks confusing,. It is ... i have a form and don't want to set the variable if the in_array is true.. the code works, up until i add the last !$buddy in the statement, for some reason it seems to always be true, ... something i'm doing wrong? btw, i cannot add the in_array to the statement because if the $buddylist is empty it will generate errors because of the empty implode. $buddylist = preg_split('/( )+/', trim($userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY); OK, it looks like $userinfo['buddylist'] is a string containing buddies separated by some whitespace: 'buddy1 buddy2' After the above statement $buddylist becomes an array. if($buddylist) { $buddy = in_array($uname['uid'], array(implode(',', $buddylist))); } Here implode() returns a string containing 'buddy1,buddy2', then you stick that into an array() which is effectively: array('buddy1,buddy2'); // note that there is only *1* element Now unless your $uname['uid'] really is literally 'buddy1,buddy2' then $buddy will be false. Hope that's enough to get you going. -- Jason Wong - Gremlins Associates - www.gremlins.biz Open Source Software Systems Integrators * Web Design Hosting * Internet Intranet Applications Development * -- Search the list archives before you post http://marc.theaimsgroup.com/?l=php-general -- /* The moon is made of green cheese. -- John Heywood */ -- 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] in_array w/statement
On Friday 17 December 2004 02:33, Sebastian wrote: I cannot solve this problem,. sorry if this looks confusing,. It is ... i have a form and don't want to set the variable if the in_array is true.. the code works, up until i add the last !$buddy in the statement, for some reason it seems to always be true, ... something i'm doing wrong? btw, i cannot add the in_array to the statement because if the $buddylist is empty it will generate errors because of the empty implode. $buddylist = preg_split('/( )+/', trim($userinfo['buddylist']), -1, PREG_SPLIT_NO_EMPTY); OK, it looks like $userinfo['buddylist'] is a string containing buddies separated by some whitespace: 'buddy1 buddy2' After the above statement $buddylist becomes an array. if($buddylist) { $buddy = in_array($uname['uid'], array(implode(',', $buddylist))); } Here implode() returns a string containing 'buddy1,buddy2', then you stick that into an array() which is effectively: array('buddy1,buddy2'); // note that there is only *1* element Now unless your $uname['uid'] really is literally 'buddy1,buddy2' then $buddy will be false. Hope that's enough to get you going. -- Jason Wong - Gremlins Associates - www.gremlins.biz Open Source Software Systems Integrators * Web Design Hosting * Internet Intranet Applications Development * -- Search the list archives before you post http://marc.theaimsgroup.com/?l=php-general -- /* The moon is made of green cheese. -- John Heywood */ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array not operating as 'expected'
Ing. Ivo F.A.C. Fokkema wrote: Hi guys and gals, I'm not screaming Bug! Bug! but this _does_ look 'illogical' to me. I've searched the archives, but found no earlier conversation. Sorry if I missed it. Consider the following code: var_dump(in_array('test', array(0))); What does this return? I expect bool(false), but it returns bool(true). After some searching the web, I bumped into this: http://www.phpdiscuss.com/article.php?id=67763group=php.bugs Basically, it is said by derick [at] php.net that this behavior is expected. The following code : var_dump('test' == 0); 'test' and 0 are not of the same type (string vs int), so string is converted to int, 0. In the examples below no type casting is needed. also returns bool(true). But my logic tells me, that if 'test' == 0, then : if (0) { ... } should do the same as if ('test') { ... } but it doesn't! The first if-statement is _not_ executed, the latter is. In my opinion, this is not correct. Any thoughts on this? Am I not seeing the logic here? Thanks for your thoughts. Ivo Fokkema -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array()/finding page Problem
You solution is quite resource expensive. I would do: [find $maxpages] SELECT COUNT(*)/12 FROM table WHERE id = $real_id; list($maxpages) = fetch_row() In result.php use ORDER BY id Ben G. McCullough wrote: I think I have a flaw of logic in trying to find the correct page in a mutli-page sql result. Goal - find the correct page [results.php?page=x] when linking from another page. Current method - loop through a pagination function looking for the matching $id in an array [simplified for illustration]: [find $maxpages] $page =1; $catch=array(); while($page = $maxpages) { [set start #] $result = [get sql results - limit $startnumber, 12] while($record = mysql_fetch_array($result)) { extract($record); $catch[] = $found_id; } if(in_array($real_id, $catch, TRUE)) { $here = $page; } $page++; } echo results.php?page=$here; I never seem to get a true return on in_array(), and in testing, I don't seem to be getting a full result set with my look up. I feel that I am missing something in the logic - or I am approaching this from the wrong direction. I originally wanted to do the while test as if in_array is FALSE, continue loop but I couldn't get that to work at all. Thank you for any help you can give this newbie. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array()/finding page Problem
Ben G. McCullough wrote: I agree - my solution is VERY resource intensive, but I think I may have over simplified my question. Each item is listed by two categories, $medium and $period. Users can get to the item via a 'browse' of either category. I want to user to be able to get back to the browse page they came from, or go to the other listing. Pass current url to the next page, or only the relevant variables, then on the next page build the url from suplied variables. To compound the issue - items are ordered by $sku, not $id. So the select statement would look more like this: SELECT COUNT(*)/12 FROM table WHERE medium = $medium ORDER BY $sku You need to find out $sku of the current row and use SELECT COUNT(*)/12 FROM table WHERE medium = $medium AND $sku = $current_sku But how would I find the page? I had figured the only way was to actually go through each loop of pages looking for the $id, which is not working, and takes a lot of resources. While this is only a test project, this issue is based on a real - world problem. You solution is quite resource expensive. I would do: [find $maxpages] SELECT COUNT(*)/12 FROM table WHERE id = $real_id; list($maxpages) = fetch_row() In result.php use ORDER BY id Ben G. McCullough wrote: I think I have a flaw of logic in trying to find the correct page in a mutli-page sql result. Goal - find the correct page [results.php?page=x] when linking from another page. Current method - loop through a pagination function looking for the matching $id in an array [simplified for illustration]: [find $maxpages] $page =1; $catch=array(); while($page = $maxpages) { [set start #] $result = [get sql results - limit $startnumber, 12] while($record = mysql_fetch_array($result)) { extract($record); $catch[] = $found_id; } if(in_array($real_id, $catch, TRUE)) { $here = $page; } $page++; } echo results.php?page=$here; I never seem to get a true return on in_array(), and in testing, I don't seem to be getting a full result set with my look up. I feel that I am missing something in the logic - or I am approaching this from the wrong direction. I originally wanted to do the while test as if in_array is FALSE, continue loop but I couldn't get that to work at all. Thank you for any help you can give this newbie. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array()
Hi Riccardo, if(mysql_num_rows($rty-resu)) { //result $rec = mysql_fetch_array($rty-resu); if(!isset($_SESSION[bkmks]) || When you save something for the first time, the element of $_SESSION[bkmks] is a string and you can compare the array $rec with this string. !in_array($rec, $_SESSION[bkmks])) { Than you convert the element into an array $_SESSION[bkmks][] = $rec; and AFAIK in_array() can´t compare two arrays, correct me if i am wrong... Greetings Jochen *** REPLY SEPARATOR *** On 22.08.02 at 12:06 Riccardo Sepe wrote: Hi every1 I got this script that works fine on my local windows pc but on the remote server (FreeBSD) I get this message: Warning: Wrong datatype for first argument in call to in_array in /usr/local/.. the script should bookmark an user choice storing it in the $_SESSION[bkmks] array. this is the code: $rty-mark($id,$tab); // call to the method that perform a standard query on the db if(mysql_num_rows($rty-resu)) { //result $rec = mysql_fetch_array($rty-resu); if(!isset($_SESSION[bkmks]) || !in_array($rec, $_SESSION[bkmks])) { $_SESSION[bkmks][] = $rec; when I store for the first time no problem ... When I try to store another item or the same item again I got that awful error thanks in advance ! Ricky -- 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] in_array problems (another pair of eyes?)
Unless you are using PHP version 4.2 or higher, the first argument can't be an array. Kirk -Original Message- From: Jas [mailto:[EMAIL PROTECTED]] Sent: Tuesday, May 21, 2002 11:46 AM To: [EMAIL PROTECTED] Subject: [PHP] in_array problems (another pair of eyes?) I don't think I am using the syntax correctly, I have been looking at this function on php.net and everything I have seen says my code should be working. A form allows the user to upload a file: form name=img1 method=post action=upload_done.php enctype=multipart/form-data input type=file name=img1 size=25 input type=submit name=Submit value=save input type=reset name=reset value=reset /form Resulting file (upload_done.php): ?php $types = array(.gif, .jpg, .jpeg, .htm, .pdf); //place file type into array if (in_array(array ('.jpg', '.jpeg'), $types)) { //this is the error line (line 7) print jpg file; } ? And here is my error: Warning: Wrong datatype for first argument in call to in_array in upload_done.php on line 7 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array problems (another pair of eyes?)
On Wednesday 22 May 2002 01:45, Jas wrote: I don't think I am using the syntax correctly, I have been looking at this function on php.net and everything I have seen says my code should be working. What version of php are you using? In PHP versions before 4.2.0 needle was not allowed to be an array. if (in_array(array ('.jpg', '.jpeg'), $types)) { //this is the error line (line 7) print jpg file; } ? And here is my error: Warning: Wrong datatype for first argument in call to in_array in upload_done.php on line 7 -- Jason Wong - Gremlins Associates - www.gremlins.com.hk Open Source Software Systems Integrators * Web Design Hosting * Internet Intranet Applications Development * /* Punning is the worst vice, and there's no vice versa. */ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] in_array algorithm
On Wed, 2002-02-06 at 08:26, John Fulton wrote: Does anyone know which algorithm in_array() uses? For example, if I say in_array(foo, $arr) Does in_array() do an unordered sequential serach of $arr for foo which takes up to n comparisons [where n = count($arr)], or does it do a binary search which takes about lg(n) comparisons? Is it up to me to maintain a sorted array in the later case? Thanks, John Well, the source for the currect version of that function (as of 4.2.0-dev) is here: http://cvs.php.net/co.php/php4/ext/standard/array.c?r=1.156 Search down the page for 'php_search_array'--that's the function which actually does the searching. Looks like a simple sequential search to me. Torben -- Torben Wilson [EMAIL PROTECTED] http://www.thebuttlesschaps.com http://www.hybrid17.com http://www.inflatableeye.com +1.604.709.0506 -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
RE: [PHP] in_array error
Steve, What version of PHP are you running. in_array is = 4.0. is_array was in 3.0 so this may be an issue for you. Gerard -Original Message- From: Steve Osborne [mailto:[EMAIL PROTECTED]] Sent: Thursday, November 29, 2001 3:08 PM To: PHP-General (E-mail) Subject: [PHP] in_array error Can anyone explain why I am getting the following error? Fatal error: Call to unsupported or undefined function in_array() in includes/chinlib21stCentury.inc on line 3131 Code: if( (is_array($List)) AND (is_array($RemoveList)) ) { $ListItems = count($List); sort($List); for($ListItem=0; $ListItem $ListItems; $ListItem++) { //printf(brList value: $List[$ListItem]br\n); if(!(in_array($List[$ListItem],$RemoveList)) AND (trim($List[$ListItem]) ) ) // Line 3131 $diff[] = $List[$ListItem]; } }elseif($debugit){ echo In function ListDiff List and RemoveList are NOT arraysBR; } return ($diff); Thanks, Steve Osborne Database Programmer Chinook Multimedia Inc. -- 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]
Re: [PHP] in_array error
I'm using php 4 on my machine, however the server that I am testing on only supports php3 - Original Message - From: Gerard Onorato [EMAIL PROTECTED] To: Steve Osborne [EMAIL PROTECTED]; PHP-General (E-mail) [EMAIL PROTECTED] Sent: Thursday, November 29, 2001 11:29 AM Subject: RE: [PHP] in_array error Steve, What version of PHP are you running. in_array is = 4.0. is_array was in 3.0 so this may be an issue for you. Gerard -Original Message- From: Steve Osborne [mailto:[EMAIL PROTECTED]] Sent: Thursday, November 29, 2001 3:08 PM To: PHP-General (E-mail) Subject: [PHP] in_array error Can anyone explain why I am getting the following error? Fatal error: Call to unsupported or undefined function in_array() in includes/chinlib21stCentury.inc on line 3131 Code: if( (is_array($List)) AND (is_array($RemoveList)) ) { $ListItems = count($List); sort($List); for($ListItem=0; $ListItem $ListItems; $ListItem++) { //printf(brList value: $List[$ListItem]br\n); if(!(in_array($List[$ListItem],$RemoveList)) AND (trim($List[$ListItem]) ) ) // Line 3131 $diff[] = $List[$ListItem]; } }elseif($debugit){ echo In function ListDiff List and RemoveList are NOT arraysBR; } return ($diff); Thanks, Steve Osborne Database Programmer Chinook Multimedia Inc. -- 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]
Re: [PHP] in_array error
You will not be able to use this and many other functions on a php3 only machine. For your convenience, all of the function references in the manual state which versions of php support them and which do not. Fred Steve Osborne [EMAIL PROTECTED] wrote in message 008401c17916$dd87f200$[EMAIL PROTECTED]">news:008401c17916$dd87f200$[EMAIL PROTECTED]... I'm using php 4 on my machine, however the server that I am testing on only supports php3 - Original Message - From: Gerard Onorato [EMAIL PROTECTED] To: Steve Osborne [EMAIL PROTECTED]; PHP-General (E-mail) [EMAIL PROTECTED] Sent: Thursday, November 29, 2001 11:29 AM Subject: RE: [PHP] in_array error Steve, What version of PHP are you running. in_array is = 4.0. is_array was in 3.0 so this may be an issue for you. Gerard -Original Message- From: Steve Osborne [mailto:[EMAIL PROTECTED]] Sent: Thursday, November 29, 2001 3:08 PM To: PHP-General (E-mail) Subject: [PHP] in_array error Can anyone explain why I am getting the following error? Fatal error: Call to unsupported or undefined function in_array() in includes/chinlib21stCentury.inc on line 3131 Code: if( (is_array($List)) AND (is_array($RemoveList)) ) { $ListItems = count($List); sort($List); for($ListItem=0; $ListItem $ListItems; $ListItem++) { file://printf(brList value: $List[$ListItem]br\n); if(!(in_array($List[$ListItem],$RemoveList)) AND (trim($List[$ListItem]) ) ) // Line 3131 $diff[] = $List[$ListItem]; } }elseif($debugit){ echo In function ListDiff List and RemoveList are NOT arraysBR; } return ($diff); Thanks, Steve Osborne Database Programmer Chinook Multimedia Inc. -- 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]
Re: [PHP] in_array
On Thu, 13 Sep 2001 14:17:12 +0300, you wrote: i wrote php scripts with php 4. but my server's php version is php 3. i used in_array function while i was writing the scripts. i used that function to check posted variables is available or not. is there an another way to check this posted variables or another one likes in_array function? Straight from the manual: http://www.php.net/manual/en/function.in-array.php function in_array($needle,$haystack) { for($i=0; $icount($haystack) $haystack[$i] !=$needle; $i++); return ($i!=count($haystack)); } djo -- 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] in_array() with associate array?
in_array is for testing that a value exists in an array. What you want is if ( isset( $some_array[some_key] ) ) print HAS KEY; else print DOESN'T HAVE KEY; At 14:23 31/07/2001 -0400, Jaxon wrote: hi, in_array is confusing me :) can someone show me an example of how to test if $some_array[some_key] actually has a value, without outputting the value? tia, jaxon -- 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] - Brian White Step Two Designs Pty Ltd - SGML, XML HTML Consultancy Phone: +612-93197901 Web: http://www.steptwo.com.au/ Email: [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]
RE: [PHP] in_array() function not supported on my server... anything else?
yeah.. the loop. see php.net/arrays most of the coolest array functions were introduced in PHP4 if you are trying to make a dynamic portable application you might want to look into phpversion(); this will tell you which version it runs, and based on that will select the best way to find the results on any server. Sincerely, Maxim Maletsky Founder, Chief Developer PHPBeginner.com (Where PHP Begins) [EMAIL PROTECTED] www.phpbeginner.com -Original Message- From: Richard [mailto:[EMAIL PROTECTED]] Sent: Friday, April 27, 2001 6:23 AM To: [EMAIL PROTECTED] Subject: [PHP] in_array() function not supported on my server... anything else? Greetings.. This is how I currently check for instances of words and other: for ($i=0; $i $total_lines; $i++){ $line_array = explode(|,$line[$i]); $swhat=strtolower($txtLinkname); $xos = array(strtolower($line_array[1]),strtolower($line_array[2]),strtolower($line _array[3]),strtolower($line_array[4]),strtolower($line_array[5])); if (in_array($swhat,$xos,true)) { $found++; Problem is, that the server where I have my files don't support in_array. It is claimed that the servers PHP server is on version 4.0, how can this be when in_array is a function that came first with PHP4 (according to my documents) ?? Is there something else I could use? Thanks - Richard -- 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]
Re: [PHP] in_array() with multidimensional array
recusrion is your friend. ?php $test[0][0] = 'a'; $test[0][1] = 'b'; $test[0][2] = 'c'; $test[1][0] = 'd'; $test[1][1] = 'e'; $test[1][2] = 'f'; $test[2][0] = 'g'; $test[2][1] = 'h'; $test[2][2] = 'i'; function in_multi_array($needle, $haystack) { foreach($haystack as $pos = $val) { if (is_array($val)) { if (in_multi_array($needle, $val)) return 1; } else if ($val == $needle) return 1; } } if (in_multi_array('d', $test)) echo "TRUE br\n"; else echo "FALSE br\n"; ? -- Chris Lee Mediawaveonline.com ph. 250.377.1095 ph. 250.376.2690 fx. 250.554.1120 [EMAIL PROTECTED] ""Christian Dechery"" [EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... How can I check if a value is in a multidimensional array? like I have ?php $i=0; while($idt = mssql_fetch_row($query_result)) { //echo $idt[0]."br"; $produtos_sem_tracking[$i]['cod']=$idt[0]; $produtos_sem_tracking[$i]['idt']=$idt[1]; $produtos_sem_tracking[$i]['gen']=$idt[2]; } ? how can I check for an existing $produtos_sem_tracking['cod'] value for example? . [ Christian Dechery ] . Webdeveloper @ T Na Mesa! . Listmaster @ Gaita-L . http://www.tanamesa.com.br -- 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]