Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Overcoming needle haystack confusion in PHP

What is the most practical way of overcoming needle haystack confusion in PHP?

Here $needle is the first argument

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Here $needle is the second argument

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
like image 348
P M Avatar asked Jun 29 '12 11:06

P M


2 Answers

it might make sense if you think of this as pre-fix representation of an in-fix operations.

is "bat" in array ("cat", "rat", "bat", "fat")
is $needle in_array $haystack
in_array($needle, $haystack)


does "supercalifragistic" string contain string "percal"
does $haystack strstr $needle
strstr($haystack, $needle)
like image 97
Kinjal Dixit Avatar answered Sep 19 '22 10:09

Kinjal Dixit


I made a cheat sheet for all php commands containing needle haystack parameters.

String functions are haystack/needle:

          strpos $haystack, $needle
         stripos $haystack, $needle
          strstr $haystack, $needle
          strchr $haystack, $needle
         stristr $haystack, $needle
         strrchr $haystack, $needle
        strripos $haystack, $needle
         strrpos $haystack, $needle
    substr_count $haystack, $needle

strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
stripos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
(same as strstr) strchr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
stristr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
strrchr ( string $haystack , mixed $needle ) : string
strripos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
strrpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] ) : int

Array functions are needle/haystack (except array_filter):

    array_search $needle, $haystack
        in_array $needle, $haystack

in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
array_search ( mixed $needle  , array $haystack  [, bool $strict  ] )

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

like image 22
Rick Reed Avatar answered Sep 22 '22 10:09

Rick Reed