IntelliBitz Technologies Training Division 168, Medavakkam Main Road Madipakkam, Chennai 91. PH: +91 044 2247 5106 www.int...
PHP WEB  PROGRAMMING.
CHAPTER 1 STARTING WITH PHP.
PHP First Steps - Overview <ul><li>PHP and the WWW </li></ul><ul><li>PHP as a server-side language </li></ul><ul><li>What'...
PHP and the Web <ul><li>www.intellibitz.com  Is typed in firefox </li></ul><ul><li>Firefox sends a message over the intern...
PHP and the Web <ul><li>The PHP interpreter reads the file /var/www/html/index.php from disk drive </li></ul><ul><li>The P...
PHP and the Web <ul><li>Apache sends the page contents it got from the PHP interpreter back to your computer over the Inte...
PHP – a server-side language <ul><li>PHP runs on the web server </li></ul><ul><li>Javascript and Flash in contrast, are cl...
What's So Great About PHP? <ul><li>PHP is free </li></ul><ul><li>PHP is cross-platform </li></ul><ul><li>PHP is widely use...
PHP in action <ul><li>The PHP interpreter runs the commands between <?php ?> tags </li></ul><ul><li>PHP processing form da...
Basic Rules of PHP Programs <ul><li>Start and End Tags </li></ul><ul><li>Whitespace and Case-Sensitivity </li></ul><ul><li...
Chapter Summary <ul><li>PHP's usage by a web server to create a response to send back to browser </li></ul><ul><li>PHP as ...
CHAPTER 2 TEXT AND NUMBERS
Working with Text and Numbers <ul><li>Defining Text Strings </li></ul><ul><li>Validating and formatting text </li></ul><ul...
Text <ul><li>Pieces of text are called strings </li></ul><ul><li>String can even contain binary file such as image or soun...
Defining Text Strings <ul><li>Variable names in a double-quoted string will be substituted with its value.This is called a...
Manipulating Text <ul><li>Validating string using trim () and strlen () </li></ul><ul><li>To compare two strings, use the ...
Formatting Text <ul><li>Use printf () with a format string and the items to print </li></ul><ul><li>Zero-padding, displayi...
String Functions. <ul><li>$length = strlen($string); </li></ul><ul><li>$arrayStr = explode($separator,$string); </li></ul>...
String Functions <ul><li>$padded = str_pad ($string,$length) </li></ul><ul><ul><ul><li>The returned string is atleast $len...
String functions <ul><li>$substring = substr($string,$n,$length) </li></ul><ul><ul><ul><li>The portion of the string start...
String functions <ul><li>substr_compare  </li></ul><ul><ul><ul><li>int substr_compare ( string $main_str, string $str, int...
String functions <ul><li>substr_replace  </li></ul><ul><ul><ul><li>mixed substr_replace ( mixed $string, string $replaceme...
String functions. <ul><li>strtolower(),strtoupper() </li></ul><ul><ul><ul><li>Converts the case to lower and upper respect...
String functions <ul><li>printf($format,$var1.$var2...); </li></ul><ul><ul><ul><li>The $format argument returns how the su...
String functions. <ul><li>$res= strpos($bigstring,$search) </li></ul><ul><ul><ul><li>The function returns the position of ...
String functions <ul><li>strrev  </li></ul><ul><ul><ul><li>Reverse a string </li></ul></ul></ul><ul><li>chunk_split — Spli...
String functions <ul><li>strstr  </li></ul><ul><ul><ul><li>Find first occurrence of a string </li></ul></ul></ul><ul><ul><...
String functions <ul><li>Strtok() </li></ul><ul><ul><ul><li>string strtok ( string $str, string $token ) </li></ul></ul></...
String functions <ul><li>strcspn  </li></ul><ul><ul><ul><li>int strcspn ( string $str1, string $str2 [, int $start [, int ...
String functions <ul><li>convert_uuencode(),convert_uudecode(). </li></ul><ul><li>Levenshtein () </li></ul><ul><ul><li>Cal...
String functions <ul><li>string addslashes ( string $str ) </li></ul><ul><ul><ul><li>Returns a string with backslashes bef...
String functions <ul><li>string htmlentities ( string $string [, int $quote_style [, string $charset]] ) </li></ul><ul><ul...
String functions <ul><li>Htmlspecialchars() </li></ul><ul><ul><ul><li>Convert special characters to HTML entities. </li></...
String functions <ul><li>htmlspecialchars_decode </li></ul><ul><ul><ul><ul><li>Convert special HTML entities back to chara...
String functions <ul><li>md5($string) </li></ul><ul><ul><ul><li>Calculates the md5 hash of a given string using  RSA Data ...
String functions <ul><li>soundex  </li></ul><ul><ul><ul><li>Calculate the soundex key of a string </li></ul></ul></ul><ul>...
String functions <ul><li>Metaphone </li></ul><ul><ul><ul><li>Calculate the metaphone key of a string. </li></ul></ul></ul>...
String functions <ul><li>ord  </li></ul><ul><ul><ul><li>Return ASCII value of character </li></ul></ul></ul><ul><li>parse_...
String functions <ul><li>quotemeta  </li></ul><ul><ul><ul><li>Quote meta characters </li></ul></ul></ul><ul><ul><ul><li>st...
String functions <ul><li>print  </li></ul><ul><ul><ul><li>Output a string </li></ul></ul></ul><ul><ul><ul><li>int print ( ...
String functions <ul><li>wordwrap  </li></ul><ul><ul><ul><ul><li>Wraps a string to a given number of characters using a st...
String functions <ul><li>vfprintf  </li></ul><ul><ul><ul><li>Write a formatted string to a stream </li></ul></ul></ul><ul>...
Type specifiers  <ul><li>type specifier that says what type the argument data should be treated as. Possible types: </li><...
Numbers <ul><li>Numbers – floating point and decimals </li></ul><ul><li>Arithmetic operators </li></ul><ul><li>+, -, *, /,...
Variables <ul><li>In PHP, variables are denoted by $ followed by the variable's name </li></ul><ul><li>Use = to assign val...
Operating on Variables <ul><li>Arithmetic and string operators work on variables just as they do on literals </li></ul><ul...
Number functions <ul><li>$absvalue = abs($number) </li></ul><ul><ul><ul><li>If $number is negative the value returned is p...
Number functions <ul><li>$ceilinged = ceil($number); </li></ul><ul><ul><ul><li>Rounds a fractional number up to next integ...
Number functions <ul><li>$maximum = max ($array); </li></ul><ul><li>$minimum = min($array); </li></ul><ul><li>$newNumber =...
Number functions <ul><li>$result = exp($power); </li></ul><ul><ul><ul><li>The function returns the natural base 'e' raised...
Number functions <ul><li>sin,cos,tan,sinh,cosh,tanh,asin,asinh,acos, acosh,atan,atanh. </li></ul><ul><li>Float atan2(float...
Number functions <ul><li>dechex,decoct,decbin. </li></ul><ul><li>fmod,hypot. </li></ul><ul><li>is_finite, is_infinite,is_n...
Number functions <ul><li>mt_rand() </li></ul><ul><ul><ul><li>By default, PHP uses the libc random number generator with th...
Chapter Summary <ul><li>Defining strings in 3 different ways: single quotes, double quotes, and a here document  </li></ul...
Chapter Summary <ul><li>Manipulating the case of string with strtolower (), strtoupper () or ucwords ()  </li></ul><ul><li...
Chapter Summary <ul><li>Naming variables appropriately  </li></ul><ul><li>Using combined operators with variables </li></u...
CHAPTER 3 Making Decisions and Looping
Making Decisions and Looping <ul><li>Understanding true and false </li></ul><ul><li>Making Decisions </li></ul><ul><li>Bui...
Understanding true and false <ul><li>All expression in PHP program has a truth value: true or false </li></ul><ul><li>Most...
Control statements <ul><li>Any PHP script is built out of a series of statements.  </li></ul><ul><li>A statement can be an...
Making Decisions <ul><li>If () construct runs a block of code if its test expression is true </li></ul><ul><li>Add an else...
If statement <ul><li>it allows for conditional execution of code fragments. </li></ul><ul><li>PHP features an if structure...
If statements <ul><li>Often you'd want to have more than one statement to be executed conditionally.  </li></ul><ul><li>In...
If else statement <ul><li>Often you'd want to execute a statement if a certain condition is met, and a different statement...
else if <ul><li>elseif, as its name suggests, is a combination of if and else. </li></ul><ul><li>It extends an if  stateme...
elseif statement <ul><li>There may be several elseifs within the same if statement. The first elseif expression (if any) t...
while()  <ul><li>While statements tells PHP to execute the nested statement(s) repeatedly, as long as the while expression...
do while <ul><li>do-while loops are very similar to while loops, except the truth expression is checked at the end of each...
for statement <ul><li>A variable can be initialised  once unconditionally at the beginning of the loop. </li></ul><ul><li>...
for loop <ul><li>Each of the expressions can be empty or contain multiple expressions separated by commas. </li></ul><ul><...
foreach loop <ul><li>PHP 4 introduced a foreach construct, much like Perl </li></ul><ul><li>This simply gives an easy way ...
foreach <ul><li>The first form loops over the array given by array_expression. On each loop, the value of the current elem...
foreach <ul><li>When foreach first starts executing, the internal array pointer is automatically reset to the first elemen...
break <ul><li>break ends execution of the current for, foreach, while, do-while or switch structure. </li></ul><ul><li>bre...
continue <ul><li>continue is used within looping structures to skip the rest of the current loop iteration and continue ex...
switch <ul><li>The switch statement is similar to a series of IF statements on the same expression. In many occasions, you...
switch <ul><li>The switch statement executes line by line (actually, statement by statement). </li></ul><ul><li>In the beg...
Alternative syntax <ul><li>PHP offers an alternative syntax for some of its control structures; namely, if, while, for, fo...
return <ul><li>If called from within a function, the return()  statement immediately ends execution of the current functio...
return <ul><li>Note that since return() is a language construct and not a function, the parentheses surrounding its argume...
require() <ul><li>The require() statement includes and evaluates the specific file. </li></ul><ul><ul><li>Require() includ...
include() <ul><li>The include() statement includes and evaluates the specified file. </li></ul><ul><li>The difference betw...
require_once() <ul><li>This is a behavior similar to the require() statement, with the only difference being that if the c...
require_once() <ul><li>Be aware, that the behaviour of require_once()  and include_once() may not be what you expect on a ...
include_once() <ul><li>This is a behavior similar to the include() statement, with the only difference being that if the c...
declare <ul><li>The declare construct is used to set execution directives for a block of code. The syntax of declare is si...
ticks <ul><li>The example profiles the PHP code within the 'declare' block, recording the time at which every second low-l...
ticks <?php // A function that records the time when it is called function profile($dump = FALSE) {     static $profile;  ...
Building Complicated Decisions <ul><li>Complicated expressions can be put together with comparison and logical operators <...
Repeating Yourself <ul><li>When a program does something repeatedly, its called looping </li></ul><ul><li>Use while(), for...
Chapter Summary <ul><li>Evaluating an expression's truth value: true or false </li></ul><ul><li>Making a decision with if(...
Chapter Summary <ul><li>Using the equality (==) and not-equals (!=) operators in test expressions. </li></ul><ul><li>Disti...
Chapter Summary <ul><li>Comparing two floating-point numbers with abs() </li></ul><ul><li>Comparing two strings with opera...
Chapter Summary <ul><li>Using the logical operators (&& and ||) to build more complicated test expressions </li></ul><ul><...
CHAPTER 4 WORKING WITH ARRAYS
Working with Arrays <ul><li>Creating an Array </li></ul><ul><li>Creating a Numeric Array </li></ul><ul><li>Looping through...
Array Basics and Creation <ul><li>An array is made up of elements. Each element has a key and a value. Only one element wi...
Creating an Array <ul><li>Assign a value to a particular array key to create an array </li></ul><ul><li>Use array() langua...
Creating a Numeric Array <ul><li>Use array() with only a list of values, instead of key/value pairs </li></ul><ul><li>Stri...
Looping through Arrays <ul><li>Use foreach() to run a code block once for each element in the array </li></ul><ul><li>Chan...
Looping through Arrays <ul><li>Use array_key_exists(), to check for an element with a certain key </li></ul><ul><li>Use in...
array() <ul><li>Create an array </li></ul><ul><li>array array ( [mixed $...] ) </li></ul><ul><li>Returns an array of the p...
array <?php $array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13); print_r($array); ?>  Array (     [0] => 1     [1...
array() <?php $firstquarter = array(1 => 'January', 'February', 'March'); print_r($firstquarter); ?>  The above example wi...
sort <ul><li>Sort an array </li></ul><ul><li>Description </li></ul><ul><li>bool sort ( array &$array [, int $sort_flags] )...
rsort <ul><li>Sort an array in reverse order </li></ul><ul><li>bool rsort ( array &$array [, int $sort_flags] ) </li></ul>...
rsort <?php $fruits = array(&quot;lemon&quot;, &quot;orange&quot;, &quot;banana&quot;, &quot;apple&quot;); rsort($fruits);...
asort <ul><li>Sort an array and maintain index association </li></ul><ul><li>bool asort ( array &$array [, int $sort_flags...
asort <?php $fruits = array(&quot;d&quot; => &quot;lemon&quot;, &quot;a&quot; => &quot;orange&quot;, &quot;b&quot; => &quo...
arsort <ul><li>Sort an array in reverse order and maintain index association </li></ul><ul><li>bool arsort ( array &$array...
arsort <?php $fruits = array(&quot;d&quot; => &quot;lemon&quot;, &quot;a&quot; => &quot;orange&quot;, &quot;b&quot; => &qu...
ksort <ul><li>Sort an array by key </li></ul><ul><li>bool ksort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>So...
krsort <ul><li>Sort an array by key in reverse order </li></ul><ul><li>bool krsort ( array &$array [, int $sort_flags] ) <...
natsort <ul><li>Sort an array using a &quot;natural order&quot; algorithm </li></ul><ul><li>bool natsort ( array &$array )...
natsort <?php $array1 = $array2 = array(&quot;img12.png&quot;, &quot;img10.png&quot;, &quot;img2.png&quot;, &quot;img1.png...
usort <ul><li>Sort an array by values using a user-defined comparison function </li></ul><ul><li>Description </li></ul><ul...
usort <?php function cmp($a, $b) {     if ($a == $b) {         return 0;     }     return ($a < $b) ? -1 : 1; } $a = array...
usort <ul><li>Note: If two members compare as equal, their order in the sorted array is undefined. Up to PHP 4.0.6 the use...
uasort <ul><li>Sort an array with a user-defined comparison function and maintain index association </li></ul><ul><li>bool...
uksort <ul><li>Sort an array by keys using a user-defined comparison function </li></ul><ul><li>bool uksort ( array &$arra...
uksort <?php function cmp($a, $b) {     $a = ereg_replace('^(a|an|the) ', '', $a);     $b = ereg_replace('^(a|an|the) ', '...
list <ul><li>Assign variables as if they were an array </li></ul><ul><li>void list ( mixed $varname, mixed $... ) </li></u...
shuffle <ul><li>Shuffle an array </li></ul><ul><li>bool shuffle ( array &$array ) </li></ul><ul><li>This function shuffles...
array_change_key_case <ul><li>Returns an array with all string keys lowercased or uppercased </li></ul><ul><ul><li>array a...
array_chunk() <ul><li>Split an array into chunks </li></ul><ul><ul><li>array array_chunk ( array $input, int $size [, bool...
array_chunk() <ul><li>By setting the optional preserve_keys parameter to TRUE, you can force PHP to preserve the original ...
key <ul><li>Fetch a key from an associative array </li></ul><ul><li>mixed key ( array &$array ) </li></ul><ul><li>key() re...
count <ul><li>Count elements in an array, or properties in an object </li></ul><ul><li>int count ( mixed $var [, int $mode...
count <?php $a[0] = 1; $a[1] = 3; $a[2] = 5; $result = count($a); // $result == 3 $b[0]  = 7; $b[5]  = 9; $b[10] = 11; $re...
current <ul><li>Return the current element in an array </li></ul><ul><li>Description </li></ul><ul><li>mixed current ( arr...
next <ul><li>Advance the internal array pointer of an array </li></ul><ul><li>mixed next ( array &$array ) </li></ul><ul><...
prev <ul><li>Rewind the internal array pointer </li></ul><ul><li>mixed prev ( array &$array ) </li></ul><ul><li>Returns th...
each <ul><li>Return the current key and value pair from an array and advance the array cursor </li></ul><ul><li>Descriptio...
each <?php $foo = array(&quot;bob&quot;, &quot;fred&quot;, &quot;jussi&quot;, &quot;jouni&quot;, &quot;egon&quot;, &quot;m...
end <ul><li>Set the internal pointer of an array to its last element </li></ul><ul><li>mixed end ( array &$array ) </li></...
reset <ul><li>Set the internal pointer of an array to its first element </li></ul><ul><li>mixed reset ( array &$array ) </...
reset <?php $array = array('step one', 'step two', 'step three', 'step four'); // by default, the pointer is on the first ...
range <ul><li>Create an array containing a range of elements </li></ul><ul><li>array range ( mixed $low, mixed $high [, nu...
range // array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'); foreach (range('a', 'i') as $letter) {     echo $letter; } //...
in_array() <ul><li>Checks if a value exists in an array </li></ul><ul><li>bool in_array ( mixed $needle, array $haystack [...
in_array <?php $os = array(&quot;Mac&quot;, &quot;NT&quot;, &quot;Irix&quot;, &quot;Linux&quot;); if (in_array(&quot;Irix&...
extract <ul><li>Import variables into the current symbol table from an array </li></ul><ul><li>nt extract ( array $var_arr...
array_count_values <ul><li>Counts all the values of an array </li></ul><ul><ul><li>array array_count_values ( array $input...
array_sum <ul><li>Calculate the sum of values in an array </li></ul><ul><li>number array_sum ( array $array ) </li></ul><u...
array_values <ul><li>Return all the values of an array </li></ul><ul><li>array array_values ( array $input ) </li></ul><ul...
array_pad <ul><li>Pad array to the specified length with a value. </li></ul><ul><li>array array_pad ( array $input, int $p...
array_pop <ul><li>Pop the element off the end of array </li></ul><ul><li>mixed array_pop ( array &$array ) </li></ul><ul><...
array_push <ul><li>Push one or more elements onto the end of array </li></ul><ul><li>int array_push ( array &$array, mixed...
array_push <ul><li>array_push has the same effect as: </li></ul><ul><li><?php </li></ul><ul><li>$array[] = $var; </li></ul...
compact <ul><li>Create array containing variables and their values </li></ul><ul><li>array compact ( mixed $varname [, mix...
array_product <ul><li>Calculate the product of values in an array </li></ul><ul><li>number array_product ( array $array ) ...
array_rand <ul><li>Pick one or more random entries out of an array </li></ul><ul><li>mixed array_rand ( array $input [, in...
array_walk <ul><li>Apply a user function to every member of an array </li></ul><ul><li>bool array_walk ( array &$array, ca...
array_walk <?php $fruits = array(&quot;d&quot; => &quot;lemon&quot;, &quot;a&quot; => &quot;orange&quot;, &quot;b&quot; =>...
array_unique <ul><li>Removes duplicate values from an array </li></ul><ul><li>array array_unique ( array $array ) </li></u...
array_unique <?php $input = array(&quot;a&quot; => &quot;green&quot;, &quot;red&quot;, &quot;b&quot; => &quot;green&quot;,...
array_map <ul><li>Applies the callback to the elements of the given arrays </li></ul><ul><li>array array_map ( callback $c...
array_reduce <ul><li>Iteratively reduce the array to a single value using a callback function </li></ul><ul><li>mixed arra...
array_reduce <ul><li>array_reduce() applies iteratively the function function to the elements of the array input, so as to...
array_reverse <ul><li>Return an array with elements in reverse order </li></ul><ul><li>array array_reverse ( array $array ...
array_reverse <?php $input  = array(&quot;php&quot;, 4.0, array(&quot;green&quot;, &quot;red&quot;)); $result = array_reve...
array_search <ul><li>Searches the array for a given value and returns the corresponding key if successful mixed array_sear...
array_shift <ul><li>Shift an element off the beginning of array </li></ul><ul><li>mixed array_shift ( array &$array ) </li...
array_shift <?php $stack = array(&quot;orange&quot;, &quot;banana&quot;, &quot;apple&quot;, &quot;raspberry&quot;); $fruit...
array_unshift <ul><li>Prepend one or more elements to the beginning of an array </li></ul><ul><li>int array_unshift ( arra...
array_slice <ul><li>Extract a slice of the array </li></ul><ul><li>rray array_slice ( array $array, int $offset [, int $le...
array_slice <ul><li>if offset is non-negative, the sequence will start at that offset in the array. If offset is negative,...
array_slice <?php $input = array(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;); $output = arr...
array_splice <ul><li>Remove a portion of the array and replace it with something else </li></ul><ul><li>array array_splice...
array_splice <ul><li>If offset is positive then the start of removed portion is at that offset from the beginning of the i...
array_merge <ul><li>array array_merge ( array $array1 [, array $array2 [, array $...]] ) </li></ul><ul><li>array_merge() m...
array_merge_recursive <ul><li>If the input arrays have the same string keys, then the values for these keys are merged tog...
array_key <ul><li>Return all the keys of an array </li></ul><ul><li>array array_keys ( array $input [, mixed $search_value...
array_key <?php $array = array(0 => 100, &quot;color&quot; => &quot;red&quot;); print_r(array_keys($array)); $array = arra...
array_key_exists <ul><li>Checks if the given key or index exists in the array </li></ul><ul><li>bool array_key_exists ( mi...
array_fill <ul><li>Fill an array with values </li></ul><ul><ul><li>array array_fill ( int $start_index, int $num, mixed $v...
array_fill_keys <ul><li>Fill an array with values, specifying keys </li></ul><ul><li>array array_fill_keys ( array $keys, ...
array_flip <ul><li>Exchanges all keys with their associated values in an array </li></ul><ul><li>array array_flip ( array ...
array_intersect <ul><li>Computes the intersection of arrays </li></ul><ul><li>array array_intersect ( array $array1, array...
array_intersect_key <ul><li>Computes the intersection of arrays using keys for comparison </li></ul><ul><ul><li>array arra...
array_intersect_key <ul><li>In our example you see that only the keys 'blue'  and 'green' are present in both arrays and t...
array_intersect_uassoc <ul><li>Computes the intersection of arrays with additional index check, compares indexes by a call...
array_intersect_assoc <ul><li>Computes the intersection of arrays with additional index check </li></ul><ul><li>array arra...
array_intersect_assoc <ul><li>In our example you see that only the pair &quot;a&quot; =>  &quot;green&quot; is present in ...
array_intersect_ukey <ul><li>Computes the intersection of arrays using a callback function on the keys for comparison </li...
array_intersect_ukey <?php function key_compare_func($key1, $key2) {     if ($key1 == $key2)         return 0;     else if...
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
PHP Web Programming
Upcoming SlideShare
Loading in...5
×

PHP Web Programming

101,176

Published on

Learn PHP Web Programming with this comprehensive tutorial.

Published in: Technology
27 Comments
166 Likes
Statistics
Notes
No Downloads
Views
Total Views
101,176
On Slideshare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
8,533
Comments
27
Likes
166
Embeds 0
No embeds

No notes for slide

Transcript of "PHP Web Programming"

  1. 1. IntelliBitz Technologies Training Division 168, Medavakkam Main Road Madipakkam, Chennai 91. PH: +91 044 2247 5106 www.intellibitz.com [email_address]
  2. 2. PHP WEB PROGRAMMING.
  3. 3. CHAPTER 1 STARTING WITH PHP.
  4. 4. PHP First Steps - Overview <ul><li>PHP and the WWW </li></ul><ul><li>PHP as a server-side language </li></ul><ul><li>What's so great about PHP? </li></ul><ul><li>PHP in action </li></ul><ul><li>PHP basics </li></ul>
  5. 5. PHP and the Web <ul><li>www.intellibitz.com Is typed in firefox </li></ul><ul><li>Firefox sends a message over the internet to the computer named www.intellibitz.com </li></ul><ul><li>Apache, a program running on www.intellibitz.com , gets the message and asks the PHP interpreter, another program running on the www.intellibitz.com computer, “what does /index.php look like?” </li></ul>
  6. 6. PHP and the Web <ul><li>The PHP interpreter reads the file /var/www/html/index.php from disk drive </li></ul><ul><li>The PHP interpreter runs the commands in index.php, possibly exchanging data with a database program such as MySQL </li></ul><ul><li>The PHP interpreter takes the index.php program output and sends it back to Apache as answer </li></ul>
  7. 7. PHP and the Web <ul><li>Apache sends the page contents it got from the PHP interpreter back to your computer over the Internet in response to Firefox </li></ul><ul><li>Firefox displays the page on the screen, following the instructions of the HTML tags in the page </li></ul>
  8. 8. PHP – a server-side language <ul><li>PHP runs on the web server </li></ul><ul><li>Javascript and Flash in contrast, are client-side because they run on a web client </li></ul><ul><li>The instructions in a PHP program cause the PHP interpreter on a web server to output a web page. The instructions in Javascript cause Firefox to run browser commands. </li></ul>
  9. 9. What's So Great About PHP? <ul><li>PHP is free </li></ul><ul><li>PHP is cross-platform </li></ul><ul><li>PHP is widely used </li></ul><ul><li>PHP hides its complexity </li></ul><ul><li>PHP is built for Web Programming </li></ul>
  10. 10. PHP in action <ul><li>The PHP interpreter runs the commands between <?php ?> tags </li></ul><ul><li>PHP processing form data via $_POST </li></ul><ul><li>String syntax called a 'here document' </li></ul><ul><li>Using PHP internal library functions like number_format () </li></ul><ul><li>Displaying infromation from a database </li></ul>
  11. 11. Basic Rules of PHP Programs <ul><li>Start and End Tags </li></ul><ul><li>Whitespace and Case-Sensitivity </li></ul><ul><li>Comments </li></ul>
  12. 12. Chapter Summary <ul><li>PHP's usage by a web server to create a response to send back to browser </li></ul><ul><li>PHP as a server-side language, contrasting with a Javascript a client-side language </li></ul><ul><li>PHP is free, cross-platform, widely-used </li></ul><ul><li>PHP basics, program structure, process form, and talk to databases </li></ul>
  13. 13. CHAPTER 2 TEXT AND NUMBERS
  14. 14. Working with Text and Numbers <ul><li>Defining Text Strings </li></ul><ul><li>Validating and formatting text </li></ul><ul><li>Manipulating Text </li></ul><ul><li>Numbers </li></ul><ul><li>Arithmetic Operators </li></ul><ul><li>Variables </li></ul><ul><li>Putting variables inside strings </li></ul>
  15. 15. Text <ul><li>Pieces of text are called strings </li></ul><ul><li>String can even contain binary file such as image or sound </li></ul><ul><li>String is surrounded by a single quotes.. single quotes are delimiters </li></ul><ul><li>Backslash to be used for escaping </li></ul><ul><li>The escape character can itself be escaped </li></ul>
  16. 16. Defining Text Strings <ul><li>Variable names in a double-quoted string will be substituted with its value.This is called as variable interpolation. </li></ul><ul><li>Here documents obey the same escape-character and variable substitution rules </li></ul><ul><li>Use a . (period) to combine two strings.The . is the cancatenation. </li></ul>
  17. 17. Manipulating Text <ul><li>Validating string using trim () and strlen () </li></ul><ul><li>To compare two strings, use the equality operator (==) </li></ul><ul><li>Use strcasecmp () to compare strings ignoring case </li></ul>
  18. 18. Formatting Text <ul><li>Use printf () with a format string and the items to print </li></ul><ul><li>Zero-padding, displaying signs with printf () </li></ul><ul><li>Use of strtolower (), strtoupper (), ucwords (),ucfirst() substr (), str_replace () </li></ul>
  19. 19. String Functions. <ul><li>$length = strlen($string); </li></ul><ul><li>$arrayStr = explode($separator,$string); </li></ul><ul><li>$str = implode($separator,$arrayStr); </li></ul><ul><li>$trimStr = trim($string); </li></ul><ul><li>$resultStr = str_replace($old,$new,$full); </li></ul><ul><li>Join() alias of implode(). </li></ul>
  20. 20. String Functions <ul><li>$padded = str_pad ($string,$length) </li></ul><ul><ul><ul><li>The returned string is atleast $length characters long. </li></ul></ul></ul><ul><li>$repeat = str_repeat($string,$n) </li></ul><ul><ul><ul><li>$string is repeated $n times and returned as string. </li></ul></ul></ul><ul><li>$array= str_split($string); </li></ul><ul><ul><ul><li>This function returns an array comprising the characters that make up the string. </li></ul></ul></ul><ul><li>str_word_count </li></ul><ul><ul><ul><li>Return information about words used in a string </li></ul></ul></ul>
  21. 21. String functions <ul><li>$substring = substr($string,$n,$length) </li></ul><ul><ul><ul><li>The portion of the string starting from the $n th character for $length number of character is returned. </li></ul></ul></ul><ul><ul><ul><li>If $n is negative the substring wil start that many characters from end of the string. </li></ul></ul></ul><ul><ul><ul><li>If $length is negative ,that many characters will be omitted from end of the string. </li></ul></ul></ul>
  22. 22. String functions <ul><li>substr_compare </li></ul><ul><ul><ul><li>int substr_compare ( string $main_str, string $str, int $offset [, int $length [, bool $case_insensitivity]] ) </li></ul></ul></ul><ul><ul><ul><ul><li>substr_compare() compares main_str from position offset with str up to length characters. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Returns < 0 if main_str from position offset is less than str, > 0 if it is greater than str, and 0 if they are equal. If length is equal or greater than length of main_str and length is set, substr_compare() prints warning and returns FALSE. </li></ul></ul></ul></ul><ul><ul><ul><li>If case_insensitivity is TRUE, comparison is case insensitive. </li></ul></ul></ul>
  23. 23. String functions <ul><li>substr_replace </li></ul><ul><ul><ul><li>mixed substr_replace ( mixed $string, string $replacement, int $start [, int $length] ) </li></ul></ul></ul><ul><ul><ul><ul><li>Replace text within a portion of a string </li></ul></ul></ul></ul><ul><li>substr_count </li></ul><ul><ul><ul><li>int substr_count ( string $haystack, string $needle [, int $offset [, int $length]] ) </li></ul></ul></ul><ul><ul><ul><ul><li>substr_count() returns the number of times the needle substring occurs in the haystack string. Please note that needle is case sensitive. </li></ul></ul></ul></ul>
  24. 24. String functions. <ul><li>strtolower(),strtoupper() </li></ul><ul><ul><ul><li>Converts the case to lower and upper respectively. </li></ul></ul></ul><ul><li>strcmp($string1,$string2) </li></ul><ul><ul><ul><li>Returns 0 if both are equal </li></ul></ul></ul><ul><ul><ul><li>Returns positive int if first string has higher ASCII value. </li></ul></ul></ul><ul><ul><ul><li>Returns negative int if second string has higher ASCII value. </li></ul></ul></ul><ul><li>similar_text (string $first,string $second </li></ul><ul><ul><ul><li>Calculate the similarity between two strings </li></ul></ul></ul><ul><ul><ul><ul><li>It returns the number matching characters in both string </li></ul></ul></ul></ul>
  25. 25. String functions <ul><li>printf($format,$var1.$var2...); </li></ul><ul><ul><ul><li>The $format argument returns how the subsequent arguments are printed. </li></ul></ul></ul><ul><li>$array = sscanf($string,$format); </li></ul><ul><ul><ul><li>The returned array contains each extracted value from the string according to the specified format. </li></ul></ul></ul><ul><li>$found = strpbrk($string,$characters) </li></ul><ul><ul><ul><li>The string is scanned for any of the characters.if match is found it returns a string starting from the character it just matched to end of the string. </li></ul></ul></ul>
  26. 26. String functions. <ul><li>$res= strpos($bigstring,$search) </li></ul><ul><ul><ul><li>The function returns the position of the $search string in $bigstring </li></ul></ul></ul><ul><li>rtrim(),ltrim(),str_ireplace(),strcasecmp(), strnatcmp(),strnatcasecmp(),stripos(), strrpos().Chop is alias of rtrim </li></ul><ul><li>string chr ( int $ascii ) </li></ul><ul><ul><ul><li>Returns a one-character string containing the character specified by ascii </li></ul></ul></ul>
  27. 27. String functions <ul><li>strrev </li></ul><ul><ul><ul><li>Reverse a string </li></ul></ul></ul><ul><li>chunk_split — Split a string into smaller chunks </li></ul><ul><ul><ul><li>string chunk_split ( string $body [, int $chunklen [, string $end]] ) </li></ul></ul></ul><ul><li>string convert_cyr_string ( string $str, string $from, string $to ) </li></ul>
  28. 28. String functions <ul><li>strstr </li></ul><ul><ul><ul><li>Find first occurrence of a string </li></ul></ul></ul><ul><ul><ul><ul><li>string strstr ( string $haystack, string $needle ) </li></ul></ul></ul></ul><ul><ul><ul><li>Returns part of haystack string from the first occurrence of needle to the end of haystack. </li></ul></ul></ul><ul><ul><ul><li>If needle is not found, returns FALSE. </li></ul></ul></ul><ul><ul><ul><li>If needle is not a string, it is converted to an integer and applied as the ordinal value of a character. </li></ul></ul></ul><ul><ul><ul><li>Stristr() - case insensitive </li></ul></ul></ul><ul><li>Strchr </li></ul><ul><ul><ul><li>Alias of strstr() </li></ul></ul></ul>
  29. 29. String functions <ul><li>Strtok() </li></ul><ul><ul><ul><li>string strtok ( string $str, string $token ) </li></ul></ul></ul><ul><ul><ul><ul><li>strtok() splits a string (str) into smaller strings (tokens), with each token being delimited by any character from token. </li></ul></ul></ul></ul><ul><li>Strtr() </li></ul><ul><ul><ul><li>string strtr ( string $str, string $from, string $to ) </li></ul></ul></ul><ul><ul><ul><ul><li>This function returns a copy of str, translating all occurrences of each character in from to the corresponding character in to. </li></ul></ul></ul></ul>
  30. 30. String functions <ul><li>strcspn </li></ul><ul><ul><ul><li>int strcspn ( string $str1, string $str2 [, int $start [, int $length]] ) </li></ul></ul></ul><ul><ul><ul><li>Find length of initial segment not matching mask </li></ul></ul></ul><ul><ul><ul><li>Returns the length of the initial segment of str1 which does not contain any of the characters in str2. </li></ul></ul></ul><ul><li>Strcoll </li></ul><ul><ul><ul><li>Locale based string comparison </li></ul></ul></ul><ul><ul><ul><li>If the current locale is C or POSIX, this function is equivalent to strcmp(). </li></ul></ul></ul><ul><ul><ul><li>Note that this comparison is case sensitive, and unlike strcmp() this function is not binary safe. </li></ul></ul></ul>
  31. 31. String functions <ul><li>convert_uuencode(),convert_uudecode(). </li></ul><ul><li>Levenshtein () </li></ul><ul><ul><li>Calculate Levenshtein distance between two strings or -1, if one of the argument strings is longer than the limit of 255 characters. </li></ul></ul><ul><li>str_rot13 </li></ul><ul><ul><ul><li>Perform the rot13 transform on a string </li></ul></ul></ul><ul><ul><ul><li>The ROT13 encoding simply shifts every letter by 13 places in the alphabet while leaving non-alpha characters untouched. </li></ul></ul></ul>
  32. 32. String functions <ul><li>string addslashes ( string $str ) </li></ul><ul><ul><ul><li>Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote (&quot;), backslash () and NUL (the NULL byte). </li></ul></ul></ul><ul><li>addcslashes(),stripcslashes(), stripslashes(). </li></ul><ul><li>str_shuffle </li></ul><ul><ul><ul><li>Randomly shuffles a string </li></ul></ul></ul><ul><li>str_split </li></ul><ul><ul><ul><li>Convert a string to an array </li></ul></ul></ul>
  33. 33. String functions <ul><li>string htmlentities ( string $string [, int $quote_style [, string $charset]] ) </li></ul><ul><ul><ul><li>Convert all applicable characters to HTML entities </li></ul></ul></ul><ul><ul><ul><li>ENT_COMPAT Will convert double-quotes and leave single-quotes alone. </li></ul></ul></ul><ul><ul><ul><li>ENT_QUOTES Will convert both double and single quotes. </li></ul></ul></ul><ul><ul><ul><li>ENT_NOQUOTES Will leave both double and single quotes unconverted. </li></ul></ul></ul><ul><ul><ul><li>charset-ISO-8859-1,ISO-8859-15,UTF-8. </li></ul></ul></ul>
  34. 34. String functions <ul><li>Htmlspecialchars() </li></ul><ul><ul><ul><li>Convert special characters to HTML entities. </li></ul></ul></ul><ul><ul><ul><li>This function returns a string with some of these conversions made </li></ul></ul></ul><ul><ul><ul><li>'&' (ampersand) becomes '&amp;' </li></ul></ul></ul><ul><ul><ul><li>'&quot;' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set. </li></ul></ul></ul><ul><ul><ul><li>''' (single quote) becomes ''' only when ENT_QUOTES is set. </li></ul></ul></ul><ul><ul><ul><li>'<' (less than) becomes '&lt;' </li></ul></ul></ul><ul><ul><ul><li>'>' (greater than) becomes '&gt;' </li></ul></ul></ul>
  35. 35. String functions <ul><li>htmlspecialchars_decode </li></ul><ul><ul><ul><ul><li>Convert special HTML entities back to characters </li></ul></ul></ul></ul><ul><ul><ul><ul><li>string htmlspecialchars_decode ( string $string [, int $quote_style] ) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>This function is the opposite of htmlspecialchars(). It converts special HTML entities back to characters.Returns the decoded string. </li></ul></ul></ul></ul><ul><li>nl2br </li></ul><ul><ul><ul><ul><li>Inserts HTML line breaks before all newlines in a string </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Returns string with '<br />' inserted before all newlines. </li></ul></ul></ul></ul><ul><li>strip_tags </li></ul><ul><ul><ul><ul><li>Strip HTML and PHP tags from a string </li></ul></ul></ul></ul>
  36. 36. String functions <ul><li>md5($string) </li></ul><ul><ul><ul><li>Calculates the md5 hash of a given string using RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. The hash is a 32-character hexadecimal number. </li></ul></ul></ul><ul><li>md5_file($filename) </li></ul><ul><ul><ul><li>md5_file — Calculates the md5 hash of a given file. </li></ul></ul></ul><ul><li>sha1 </li></ul><ul><ul><ul><li>Calculate the sha1 hash of a string </li></ul></ul></ul>
  37. 37. String functions <ul><li>soundex </li></ul><ul><ul><ul><li>Calculate the soundex key of a string </li></ul></ul></ul><ul><ul><ul><ul><li>Soundex keys have the property that words pronounced similarly produce the same soundex key, and can thus be used to simplify searches in databases where you know the pronunciation but not the spelling. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>This soundex function returns a string 4 characters long, starting with a letter. </li></ul></ul></ul></ul>
  38. 38. String functions <ul><li>Metaphone </li></ul><ul><ul><ul><li>Calculate the metaphone key of a string. </li></ul></ul></ul><ul><ul><ul><ul><li>Similar to soundex() metaphone creates the same key for similar sounding words. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>It's more accurate than soundex() as it knows the basic rules of English pronunciation. The metaphone generated keys are of variable length. </li></ul></ul></ul></ul><ul><li>money_format </li></ul><ul><ul><ul><li>Formats a number as a currency string </li></ul></ul></ul><ul><li>number_format </li></ul><ul><ul><ul><li>Format a number with grouped thousands </li></ul></ul></ul>
  39. 39. String functions <ul><li>ord </li></ul><ul><ul><ul><li>Return ASCII value of character </li></ul></ul></ul><ul><li>parse_str </li></ul><ul><ul><ul><li>Parses the string into variables </li></ul></ul></ul><ul><li>quoted_printable_decode </li></ul><ul><ul><ul><li>Convert a quoted-printable string to an 8 bit string </li></ul></ul></ul>
  40. 40. String functions <ul><li>quotemeta </li></ul><ul><ul><ul><li>Quote meta characters </li></ul></ul></ul><ul><ul><ul><li>string quotemeta ( string $str ) </li></ul></ul></ul><ul><ul><ul><li>Returns a version of str with a backslash character () before every character that is among these: </li></ul></ul></ul><ul><ul><ul><ul><li>. + * ? [ ^ ] ( $ ) </li></ul></ul></ul></ul><ul><ul><ul><li>Note: This function is binary-safe. </li></ul></ul></ul>
  41. 41. String functions <ul><li>print </li></ul><ul><ul><ul><li>Output a string </li></ul></ul></ul><ul><ul><ul><li>int print ( string $arg ) </li></ul></ul></ul><ul><ul><ul><li>Outputs arg. Returns 1, always. </li></ul></ul></ul><ul><ul><ul><ul><li>print() is not actually a real function (it is a language construct) so you are not required to use parentheses with its argument list. </li></ul></ul></ul></ul><ul><li>sprintf </li></ul><ul><ul><ul><li>Return a formatted string </li></ul></ul></ul><ul><li>str_getcsv </li></ul><ul><ul><ul><li>Parse a CSV string into an array. </li></ul></ul></ul>
  42. 42. String functions <ul><li>wordwrap </li></ul><ul><ul><ul><ul><li>Wraps a string to a given number of characters using a string break character </li></ul></ul></ul></ul><ul><ul><ul><li>string wordwrap ( string $str [, int $width [, string $break [, bool $cut]]] ) </li></ul></ul></ul><ul><ul><ul><ul><li>Returns a string with str wrapped at the column number specified by the optional width parameter. The line is broken using the (optional) break parameter. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>wordwrap() will automatically wrap at column 75 and break using ' ' (newline) if width or break are not given. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>If the cut is set to 1, the string is always wrapped at the specified width. So if you have a word that is larger than the given width, it is broken apart </li></ul></ul></ul></ul>
  43. 43. String functions <ul><li>vfprintf </li></ul><ul><ul><ul><li>Write a formatted string to a stream </li></ul></ul></ul><ul><li>vprintf </li></ul><ul><ul><ul><li>Output a formatted string </li></ul></ul></ul><ul><li>vsprintf </li></ul><ul><ul><ul><li>Return a formatted string </li></ul></ul></ul><ul><ul><ul><ul><li>string vsprintf ( string $format, array $args ) </li></ul></ul></ul></ul>
  44. 44. Type specifiers <ul><li>type specifier that says what type the argument data should be treated as. Possible types: </li></ul><ul><li>% - a literal percent character. No argument is required. </li></ul><ul><li>b - the argument is treated as an integer, and presented as a binary number. </li></ul><ul><li>c - the argument is treated as an integer, and presented as the character with that ASCII value. </li></ul><ul><li>d - the argument is treated as an integer, and presented as a (signed) decimal number. </li></ul><ul><li>e - the argument is treated as scientific notation (e.g. 1.2e+2). </li></ul><ul><li>u - the argument is treated as an integer, and presented as an unsigned decimal number. </li></ul><ul><li>f - the argument is treated as a float, and presented as a floating-point number (locale aware). </li></ul><ul><li>F - the argument is treated as a float, and presented as a floating-point number (non-locale aware). Available since PHP 4.3.10 and PHP 5.0.3. </li></ul><ul><li>o - the argument is treated as an integer, and presented as an octal number. </li></ul><ul><li>s - the argument is treated as and presented as a string. </li></ul><ul><li>x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters). </li></ul><ul><li>X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters). </li></ul>
  45. 45. Numbers <ul><li>Numbers – floating point and decimals </li></ul><ul><li>Arithmetic operators </li></ul><ul><li>+, -, *, /, % </li></ul><ul><li>Operator precedence </li></ul><ul><li>Grouping operations inside parentheses, will execute whats inside the parentheses first </li></ul>
  46. 46. Variables <ul><li>In PHP, variables are denoted by $ followed by the variable's name </li></ul><ul><li>Use = to assign value to a variable </li></ul><ul><li>Variable names must begin with letter or an underscore </li></ul><ul><li>Variable names are case-sensitive </li></ul><ul><li>Avoid variable names differ by letter case </li></ul><ul><li>Avoid using variable names as function names. </li></ul>
  47. 47. Operating on Variables <ul><li>Arithmetic and string operators work on variables just as they do on literals </li></ul><ul><li>Operator followed by = means “apply this operator to the variable” </li></ul><ul><li>+=, .=, ++, -- </li></ul><ul><li>Variable interpolation and curly braces </li></ul>
  48. 48. Number functions <ul><li>$absvalue = abs($number) </li></ul><ul><ul><ul><li>If $number is negative the value returned is positive. </li></ul></ul></ul><ul><li>$remainder = $dividend % $divisor; </li></ul><ul><ul><ul><li>% called modulus operator,returns the remainder. </li></ul></ul></ul><ul><li>$result = pow($number,$pow); </li></ul><ul><ul><ul><li>PHP does not have power operator. This function must be used instead. </li></ul></ul></ul><ul><li>$root = sqrt($number) </li></ul>
  49. 49. Number functions <ul><li>$ceilinged = ceil($number); </li></ul><ul><ul><ul><li>Rounds a fractional number up to next integer. </li></ul></ul></ul><ul><li>$floored = floor($number); </li></ul><ul><ul><ul><li>Same as ceil but returned value is still a float type </li></ul></ul></ul><ul><li>$rounded = round($number); </li></ul><ul><ul><ul><li>The function rounds the number to the nearest whole number. </li></ul></ul></ul>
  50. 50. Number functions <ul><li>$maximum = max ($array); </li></ul><ul><li>$minimum = min($array); </li></ul><ul><li>$newNumber = base_convert($number,$oldbase,$newbase); </li></ul><ul><ul><ul><li>This function converts a number in any base , up to base 36,to a number in any other base,again upto base 36. </li></ul></ul></ul><ul><li>$result = rand($min,$max) </li></ul><ul><ul><ul><li>Generates random numbers between $min and $max </li></ul></ul></ul>
  51. 51. Number functions <ul><li>$result = exp($power); </li></ul><ul><ul><ul><li>The function returns the natural base 'e' raised to the specified power. </li></ul></ul></ul><ul><li>$result = log($number,$base); </li></ul><ul><ul><ul><li>This function returns the logarithm of the specified number to the base provided. </li></ul></ul></ul>
  52. 52. Number functions <ul><li>sin,cos,tan,sinh,cosh,tanh,asin,asinh,acos, acosh,atan,atanh. </li></ul><ul><li>Float atan2(float $y,float $x) </li></ul><ul><ul><ul><li>This function calculates the arc tangent of the two variables x and y. It is similar to calculating the arc tangent of y / x, except that the signs of both arguments are used to determine the quadrant of the result. </li></ul></ul></ul><ul><ul><ul><li>The function returns the result in radians, which is between -PI and PI (inclusive). </li></ul></ul></ul>
  53. 53. Number functions <ul><li>dechex,decoct,decbin. </li></ul><ul><li>fmod,hypot. </li></ul><ul><li>is_finite, is_infinite,is_nan. </li></ul><ul><li>deg2rad,rad2deg,pi. </li></ul><ul><li>float lcg_value ( void ) </li></ul><ul><ul><ul><li>lcg_value() returns a pseudo random number in the range of (0, 1). Combined linear congruential generator. </li></ul></ul></ul>
  54. 54. Number functions <ul><li>mt_rand() </li></ul><ul><ul><ul><li>By default, PHP uses the libc random number generator with the rand() function.The mt_rand() uses a random number generator with known characteristics using the » Mersenne Twister, which will produce random numbers four times faster than what the average libc rand() provides. </li></ul></ul></ul>
  55. 55. Chapter Summary <ul><li>Defining strings in 3 different ways: single quotes, double quotes, and a here document </li></ul><ul><li>Escaping: what it is and what characters need to be escaped in each kind of string </li></ul><ul><li>Validating a string by checking its length, removing leading and trailing whitespace </li></ul><ul><li>Formatting string with printf () </li></ul>
  56. 56. Chapter Summary <ul><li>Manipulating the case of string with strtolower (), strtoupper () or ucwords () </li></ul><ul><li>Selecting part of a string with substr () </li></ul><ul><li>Changing part of a string with str_replace () </li></ul><ul><li>Defining numbers in your programs </li></ul><ul><li>Doing math with numbers </li></ul><ul><li>Storing values in variables </li></ul>
  57. 57. Chapter Summary <ul><li>Naming variables appropriately </li></ul><ul><li>Using combined operators with variables </li></ul><ul><li>Using increment and decrement operators with variables </li></ul><ul><li>Interpolating variables in strings </li></ul>
  58. 58. CHAPTER 3 Making Decisions and Looping
  59. 59. Making Decisions and Looping <ul><li>Understanding true and false </li></ul><ul><li>Making Decisions </li></ul><ul><li>Building Complicated Decisions </li></ul><ul><li>Repeating Yourself </li></ul>
  60. 60. Understanding true and false <ul><li>All expression in PHP program has a truth value: true or false </li></ul><ul><li>Most scalar values are true. All integers and floating point (except 0 and 0.0) are true </li></ul><ul><li>All strings are true except for two: an empty string and the string containing only 0 </li></ul><ul><li>An empty array is false </li></ul>
  61. 61. Control statements <ul><li>Any PHP script is built out of a series of statements. </li></ul><ul><li>A statement can be an assignment, a function call, a loop, a conditional statement or even a statement that does nothing (an empty statement). </li></ul><ul><li>Statements usually end with a semicolon. </li></ul><ul><li>In addition, statements can be grouped into a statement-group by encapsulating a group of statements with curly braces {...}. </li></ul><ul><li>A statement-group is a statement by itself as well. </li></ul>
  62. 62. Making Decisions <ul><li>If () construct runs a block of code if its test expression is true </li></ul><ul><li>Add an else to if() statement, to run different statements when the test expression is false </li></ul><ul><li>use elseif() with if() to test manyconditions </li></ul><ul><li>For a given set of if() and elseif() statements, at most one of the code blocks is run </li></ul>
  63. 63. If statement <ul><li>it allows for conditional execution of code fragments. </li></ul><ul><li>PHP features an if structure that is similar to that of C: </li></ul><ul><li>The expression is evaluated to its Boolean value. If expression evaluates to TRUE, PHP will execute statement, and if it evaluates to FALSE - it'll ignore it. </li></ul>if (expr) statement
  64. 64. If statements <ul><li>Often you'd want to have more than one statement to be executed conditionally. </li></ul><ul><li>In such case there's no need to wrap each statement with an if clause. Instead, you can group several statements into a statement group. </li></ul><ul><li>If statements can be nested indefinitely within other if statements, which provides you with complete flexibility for conditional execution of the various parts of your program. </li></ul><?php if ($a > $b)    echo &quot;a is bigger than b&quot;; ?> <?php if ($a > $b) {    echo &quot;a is bigger than b&quot;;    $b = $a; } ?>
  65. 65. If else statement <ul><li>Often you'd want to execute a statement if a certain condition is met, and a different statement if the condition is not met. This is what else is for. </li></ul><ul><li>else extends an if statement to execute a statement in case the expression in the if statement evaluates to FALSE. </li></ul><ul><li>The else statement is only executed if the if expression evaluated to FALSE, and if there were any elseif expressions - only if they evaluated to FALSE this else is executed </li></ul><?php if ($a > $b) {    echo &quot;a is bigger than b&quot;; } else {    echo &quot;a is NOT bigger than b&quot;; } ?>
  66. 66. else if <ul><li>elseif, as its name suggests, is a combination of if and else. </li></ul><ul><li>It extends an if statement to execute a different statement in case the original if expression evaluates to FALSE. </li></ul><ul><li>However, unlike else, it will execute that alternative expression only if the elseif conditional expression evaluates to TRUE. </li></ul><?php if ($a > $b) {    echo &quot;a is bigger than b&quot;; } elseif ($a == $b) {    echo &quot;a is equal to b&quot;; } else {    echo &quot;a is smaller than b&quot;; } ?>
  67. 67. elseif statement <ul><li>There may be several elseifs within the same if statement. The first elseif expression (if any) that evaluates to TRUE would be executed. </li></ul><ul><li>In PHP, you can also write 'else if' (in two words) and the behavior would be identical to the one of 'elseif' (in a single word). The syntactic meaning is slightly different (if you're familiar with C, this is the same behavior) but the bottom line is that both would result in exactly the same behavior. </li></ul><ul><li>The elseif statement is only executed if the preceding if expression and any preceding elseif expressions evaluated to FALSE, and the current elseif expression evaluated to TRUE. </li></ul>
  68. 68. while() <ul><li>While statements tells PHP to execute the nested statement(s) repeatedly, as long as the while expression evaluates to TRUE. </li></ul><ul><li>The value of the expression is checked each time at the beginning of the loop, so even if this value changes during the execution of the nested statement(s), execution will not stop until the end of the iteration (each time PHP runs the statements in the loop is one iteration). </li></ul><ul><li>Sometimes, if the while expression evaluates to FALSE from the very beginning, the nested statement(s) won't even be run once. </li></ul>while (expr) statement <?php $i = 1; while ($i <= 10) {    echo $i++;  } /* the printed value would be $i before the increment (post-increment) */ ?>
  69. 69. do while <ul><li>do-while loops are very similar to while loops, except the truth expression is checked at the end of each iteration instead of in the beginning. </li></ul><ul><li>The main difference from regular while loops is that the first iteration of a do-while loop is guaranteed to run as the truth expression is only checked at the end of the iteration). </li></ul><ul><li>whereas it's may not necessarily run with a regular while loop the truth expression is checked at the beginning of each iteration, if it evaluates to FALSE right from the beginning, the loop execution would end immediately. </li></ul><?php $i = 0; do {    echo $i; } while ($i > 0); ?>
  70. 70. for statement <ul><li>A variable can be initialised once unconditionally at the beginning of the loop. </li></ul><ul><li>In the beginning of each iteration, test condition is checked. If it evaluates to TRUE, the loop continues and the nested statement(s) are executed. If it evaluates to FALSE, the execution of the loop ends. </li></ul><ul><li>At the end of each iteration, increment value is evaluated (executed). </li></ul>for (initialise; test condition; increment value) statement for ($i = 1; $i <= 10; $i++) {   echo $i; } for ($i = 1; ; $i++) { if ($i > 10) { break; } echo $i; }
  71. 71. for loop <ul><li>Each of the expressions can be empty or contain multiple expressions separated by commas. </li></ul><ul><li>Comma separated expressions in test condition are treated similarly to being separated by the || operator but has a lower precedence than ||. expr2 being empty means the loop should be run indefinitely (PHP implicitly considers it as TRUE, like C). </li></ul><ul><li>This may not be as useless as you might think, since often you'd want to end the loop using a conditional break statement instead of using the for truth expression. </li></ul>$i = 1; for (; ; ) {    if ($i > 10) {        break;    }    echo $i;    $i++; } for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
  72. 72. foreach loop <ul><li>PHP 4 introduced a foreach construct, much like Perl </li></ul><ul><li>This simply gives an easy way to iterate over arrays. </li></ul><ul><li>foreach works only on arrays, and will issue an error when you try to use it on a variable with a different data type or an uninitialized variable. </li></ul><ul><li>There are two syntaxes; the second is a minor but useful extension of the first: </li></ul>foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement
  73. 73. foreach <ul><li>The first form loops over the array given by array_expression. On each loop, the value of the current element is assigned to $value and the internal array pointer is advanced by one (so on the next loop, you'll be looking at the next element). </li></ul><ul><li>The second form does the same thing, except that the current element's key will be assigned to the variable $key on each loop. </li></ul><ul><li>you can easily modify array's elements by preceding $value with &. This will assign reference instead of copying the value. </li></ul><?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) {    $value = $value * 2; } // $arr is now array(2, 4, 6, 8) foreach($arr as $key =>$val){ print”$key=$val”; } ?>
  74. 74. foreach <ul><li>When foreach first starts executing, the internal array pointer is automatically reset to the first element of the array. This means that you do not need to call reset() before a foreach loop. </li></ul><ul><li>Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself. </li></ul>
  75. 75. break <ul><li>break ends execution of the current for, foreach, while, do-while or switch structure. </li></ul><ul><li>break accepts an optional numeric argument which tells it how many nested enclosing structures are to be broken out of. </li></ul>$i = 0; while (++$i) {    switch ($i) {    case 5:        echo &quot;At 5<br /> &quot;;        break 1;  /* Exit only the switch. */    case 10:        echo &quot;At 10; quitting<br /> &quot;;        break 2;  /* Exit the switch and the while. */    default:        break;    } }
  76. 76. continue <ul><li>continue is used within looping structures to skip the rest of the current loop iteration and continue execution at the condition evaluation and then the beginning of the next iteration. </li></ul><ul><li>Note that in PHP the switch statement is considered a looping structure for the purposes of continue. </li></ul><ul><li>continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of. </li></ul>$i = 0; while ($i++ < 5) {    echo &quot;Outer<br /> &quot;;    while (1) {        echo &quot;Middle<br /> &quot;;        while (1) {            echo &quot;Inner<br /> &quot;;            continue 3;        }    echo &quot;This never gets output.<br /> &quot;;    }    echo &quot;Neither does this.<br /> &quot;; }
  77. 77. switch <ul><li>The switch statement is similar to a series of IF statements on the same expression. In many occasions, you may want to compare the same variable (or expression) with many different values, and execute a different piece of code depending on which value it equals to. This is exactly what the switch statement is for. </li></ul><ul><li>Note that unlike some other languages, the continue statement applies to switch and acts similar to break. If you have a switch inside a loop and wish to continue to the next iteration of the outer loop, use continue 2. </li></ul><?php switch ($i) { case 0:    echo &quot;i equals 0&quot;;    break; case 1:    echo &quot;i equals 1&quot;;    break; case 2:    echo &quot;i equals 2&quot;;    break; } ?>
  78. 78. switch <ul><li>The switch statement executes line by line (actually, statement by statement). </li></ul><ul><li>In the beginning, no code is executed. Only when a case statement is found with a value that matches the value of the switch expression does PHP begin to execute the statements. </li></ul><ul><li>PHP continues to execute the statements until the end of the switch block, or the first time it sees a break statement. </li></ul><ul><li>Thus, it is important not to forget break statements to avoid mistakes. </li></ul>?php switch ($i) { case 0:    echo &quot;i equals 0&quot;; case 1:    echo &quot;i equals 1&quot;; case 2:    echo &quot;i equals 2&quot;; } ?>
  79. 79. Alternative syntax <ul><li>PHP offers an alternative syntax for some of its control structures; namely, if, while, for, foreach, and switch. In each case, the basic form of the alternate syntax is to change the opening brace to a colon (:) and the closing brace to endif;, endwhile;, endfor;, endforeach;, or endswitch;, respectively. </li></ul><?php if ($a == 5): ?> A is equal to 5 <?php endif; ?> <?php if ($a == 5):    echo &quot;a equals 5&quot;;    echo &quot;...&quot;; elseif ($a == 6):    echo &quot;a equals 6&quot;;    echo &quot;!!!&quot;; else:    echo &quot;a is neither 5 nor 6&quot;; endif; ?>
  80. 80. return <ul><li>If called from within a function, the return() statement immediately ends execution of the current function, and returns its argument as the value of the function call. </li></ul><ul><li>return() will also end the execution of an eval() statement or script file. </li></ul><ul><li>Eval() evaluates the string as PHP code. </li></ul>
  81. 81. return <ul><li>Note that since return() is a language construct and not a function, the parentheses surrounding its arguments are not required. It is common to leave them out, and you actually should do so as PHP has less work to do in this case. </li></ul><ul><li>You should never use parentheses around your return variable when returning by reference, as this will not work. You can only return variables by reference, not the result of a statement. If you use return ($a); then you're not returning a variable, but the result of the expression ($a) (which is, of course, the value of $a). </li></ul>
  82. 82. require() <ul><li>The require() statement includes and evaluates the specific file. </li></ul><ul><ul><li>Require() includes and evaluates a specific file. </li></ul></ul><?php require 'prepend.php'; require $somefile; require ('somefile.txt'); ?>
  83. 83. include() <ul><li>The include() statement includes and evaluates the specified file. </li></ul><ul><li>The difference between include() and require() The two constructs are identical in every way except how they handle failure. </li></ul><ul><li>They both produce a Warning, but require() results in a Fatal Errorand stops execution. </li></ul><ul><li>include() does not behave this way, the script will continue regardless. </li></ul><ul><li>use require() if you want a missing file to halt processing of the page. </li></ul>
  84. 84. require_once() <ul><li>This is a behavior similar to the require() statement, with the only difference being that if the code from a file has already been included, it will not be included again. </li></ul><ul><li>require_once() should be used in cases where you want to be sure that it is included exactly once to avoid problems with function redefinitions, variable value reassignments, etc. </li></ul>
  85. 85. require_once() <ul><li>Be aware, that the behaviour of require_once() and include_once() may not be what you expect on a non case sensitive operating system (such as Windows). </li></ul><?php require_once(&quot;a.php&quot;); // this will include a.php require_once(&quot;A.php&quot;); // this will include a.php //again on Windows! (PHP 4 only) ?>
  86. 86. include_once() <ul><li>This is a behavior similar to the include() statement, with the only difference being that if the code from a file has already been included, it will not be included again. </li></ul>
  87. 87. declare <ul><li>The declare construct is used to set execution directives for a block of code. The syntax of declare is similar to the syntax of other flow control constructs </li></ul><ul><li>A tick is an event that occurs for every N low-level statements executed by the parser within the declare block. </li></ul><ul><li>The value for N is specified using ticks=N within the declare blocks's directive section. </li></ul><ul><li>The event(s) that occur on each tick are specified using the register_tick_function() </li></ul>declare (directive) statement <?php // these are the same: // you can use this: declare(ticks=1) {    // entire script here } // or you can use this: declare(ticks=1); // entire script here ?>
  88. 88. ticks <ul><li>The example profiles the PHP code within the 'declare' block, recording the time at which every second low-level statement in the block was executed. </li></ul><ul><li>This information can then be used to find the slow areas within particular segments of code. </li></ul><ul><li>This process can be performed using other methods: using ticks is more convenient and easier to implement. </li></ul>
  89. 89. ticks <?php // A function that records the time when it is called function profile($dump = FALSE) {    static $profile;    // Return the times stored in profile, then erase it    if ($dump) {        $temp = $profile;        unset($profile);        return $temp;    } $profile[] = microtime(); } // Set up a tick handler register_tick_function(&quot;profile&quot;); // Initialize the function before the declare block profile(); // Run a block of code, throw a tick every 2nd statement declare(ticks=2) {   for ($x = 1; $x < 50; ++$x) { echo similar_text(md5($x), md5($x*$x)), &quot;<br />;&quot;;    } } // Display the data stored in the profiler print_r(profile(TRUE)); ?>
  90. 90. Building Complicated Decisions <ul><li>Complicated expressions can be put together with comparison and logical operators </li></ul><ul><li>Beware of assignment versus comparison </li></ul><ul><li>Beware of floating-point comparison </li></ul><ul><li>Strings are compared like dictionary lookup </li></ul><ul><li>Beware of strings containing numbers </li></ul><ul><li>Use strcmp() to compare like dictionary for strings containing numbers </li></ul>
  91. 91. Repeating Yourself <ul><li>When a program does something repeatedly, its called looping </li></ul><ul><li>Use while(), for(), foreach() for looping </li></ul><ul><li>Multiple expression in for() is allowed but only one test expression is possible </li></ul>
  92. 92. Chapter Summary <ul><li>Evaluating an expression's truth value: true or false </li></ul><ul><li>Making a decision with if(). </li></ul><ul><li>Extending if() with else </li></ul><ul><li>Extending if() with elseif() </li></ul><ul><li>Putting multiple statements inside an if(), elseif(), or else code block </li></ul>
  93. 93. Chapter Summary <ul><li>Using the equality (==) and not-equals (!=) operators in test expressions. </li></ul><ul><li>Distinguishing between assignment (=) and equality comparison (==) </li></ul><ul><li>Using the less-than (<), greater-than (>), less-than-or-equal-to (<=), and greater-than-or-equal-to (>=) operators in test expressions </li></ul>
  94. 94. Chapter Summary <ul><li>Comparing two floating-point numbers with abs() </li></ul><ul><li>Comparing two strings with operators </li></ul><ul><li>Comparing two strings with strcmp() or strcasecmp() </li></ul><ul><li>Using the negation operator (!) in test expressions </li></ul>
  95. 95. Chapter Summary <ul><li>Using the logical operators (&& and ||) to build more complicated test expressions </li></ul><ul><li>Repeating a code block with while () </li></ul><ul><li>Repeating a code block with for () </li></ul>
  96. 96. CHAPTER 4 WORKING WITH ARRAYS
  97. 97. Working with Arrays <ul><li>Creating an Array </li></ul><ul><li>Creating a Numeric Array </li></ul><ul><li>Looping through Arrays </li></ul><ul><li>Modifying Arrays </li></ul><ul><li>Sorting Arrays </li></ul><ul><li>Using Multidimensional Arrays </li></ul>
  98. 98. Array Basics and Creation <ul><li>An array is made up of elements. Each element has a key and a value. Only one element with a given key can exist. </li></ul><ul><li>Any string or number can be the key </li></ul><ul><li>An element value can be string, number, true or false; it can also be another array </li></ul>
  99. 99. Creating an Array <ul><li>Assign a value to a particular array key to create an array </li></ul><ul><li>Use array() language construct </li></ul><ul><li>With array(), specify a comma-delimited list of key/value pairs </li></ul><ul><li>Beware of array and scalar name collision </li></ul>
  100. 100. Creating a Numeric Array <ul><li>Use array() with only a list of values, instead of key/value pairs </li></ul><ul><li>String keyed arrays are associative arrays </li></ul><ul><li>PHP automatically uses incrementing numbers for array keys when array creation or add elements with empty brackets syntax </li></ul><ul><li>Use count() to find the size of an array </li></ul>
  101. 101. Looping through Arrays <ul><li>Use foreach() to run a code block once for each element in the array </li></ul><ul><li>Changing the loop variables like $key and $value inside foreach() doesn't affect array </li></ul><ul><li>Inside foreach(), the elements are accessed in the order they were added to the array </li></ul><ul><li>Use for() to access elements in numerical key order </li></ul>
  102. 102. Looping through Arrays <ul><li>Use array_key_exists(), to check for an element with a certain key </li></ul><ul><li>Use in_array(), to check for an element with a particular value </li></ul><ul><li>in_array is case-sensitive </li></ul><ul><li>Use array_search to find the element key for a given element value </li></ul>
  103. 103. array() <ul><li>Create an array </li></ul><ul><li>array array ( [mixed $...] ) </li></ul><ul><li>Returns an array of the parameters. The parameters can be given an index with the => operator. </li></ul><?php $fruits = array (    &quot;fruits&quot;  => array(&quot;a&quot; => &quot;orange&quot;, &quot;b&quot; => &quot;banana&quot;, &quot;c&quot; => &quot;apple&quot;),    &quot;numbers&quot; => array(1, 2, 3, 4, 5, 6),    &quot;holes&quot;  => array(&quot;first&quot;, 5 => &quot;second&quot;, &quot;third&quot;) ); ?>
  104. 104. array <?php $array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13); print_r($array); ?> Array (    [0] => 1    [1] => 1    [2] => 1    [3] => 13    [4] => 1    [8] => 1    [9] => 19 )
  105. 105. array() <?php $firstquarter = array(1 => 'January', 'February', 'March'); print_r($firstquarter); ?> The above example will output: Array ( [1] => January [2] => February [3] => March ) 1-based index with array() <?php $foo = array('bar' => 'baz'); echo &quot;Hello {$foo['bar']}!&quot;; // Hello baz! ?>
  106. 106. sort <ul><li>Sort an array </li></ul><ul><li>Description </li></ul><ul><li>bool sort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>This function sorts an array. Elements will be arranged from lowest to highest when this function has completed. </li></ul><ul><li>Note: This function assigns new keys for the elements in array. It will remove any existing keys you may have assigned, rather than just reordering the keys. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul><?php $fruits = array(&quot;lemon&quot;, &quot;orange&quot;, &quot;banana&quot;, &quot;apple&quot;); sort($fruits); foreach ($fruits as $key => $val) {    echo &quot;fruits[&quot; . $key . &quot;] = &quot; . $val . &quot; &quot;; } ?> The above example will output: fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange
  107. 107. rsort <ul><li>Sort an array in reverse order </li></ul><ul><li>bool rsort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>This function sorts an array in reverse order (highest to lowest). </li></ul><ul><li>This function assigns new keys for the elements in array. It will remove any existing keys you may have assigned, rather than just reordering the keys. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul>
  108. 108. rsort <?php $fruits = array(&quot;lemon&quot;, &quot;orange&quot;, &quot;banana&quot;, &quot;apple&quot;); rsort($fruits); foreach ($fruits as $key => $val) {    echo &quot;$key = $val &quot;; } ?> The above example will output: 0 = orange 1 = lemon 2 = banana 3 = apple
  109. 109. asort <ul><li>Sort an array and maintain index association </li></ul><ul><li>bool asort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul>
  110. 110. asort <?php $fruits = array(&quot;d&quot; => &quot;lemon&quot;, &quot;a&quot; => &quot;orange&quot;, &quot;b&quot; => &quot;banana&quot;, &quot;c&quot; => &quot;apple&quot;); asort($fruits); foreach ($fruits as $key => $val) {    echo &quot;$key = $val &quot;; } ?> The above example will output: c = apple b = banana d = lemon a = orange The fruits have been sorted in alphabetical order, and the index associated with each element has been maintained.
  111. 111. arsort <ul><li>Sort an array in reverse order and maintain index association </li></ul><ul><li>bool arsort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul>
  112. 112. arsort <?php $fruits = array(&quot;d&quot; => &quot;lemon&quot;, &quot;a&quot; => &quot;orange&quot;, &quot;b&quot; => &quot;banana&quot;, &quot;c&quot; => &quot;apple&quot;); arsort($fruits); foreach ($fruits as $key => $val) {    echo &quot;$key = $val &quot;; } ?> The above example will output: a = orange d = lemon b = banana c = apple The fruits have been sorted in reverse alphabetical order, and the index associated with each element has been maintained.
  113. 113. ksort <ul><li>Sort an array by key </li></ul><ul><li>bool ksort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>Sorts an array by key, maintaining key to data correlations. This is useful mainly for associative arrays. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul><?php $fruits = array(&quot;d&quot;=>&quot;lemon&quot;, &quot;a&quot;=>&quot;orange&quot;, &quot;b&quot;=>&quot;banana&quot;, &quot;c&quot;=>&quot;apple&quot;); ksort($fruits); foreach ($fruits as $key => $val) {    echo &quot;$key = $val &quot;; } ?> The above example will output: a = orange b = banana c = apple d = lemon
  114. 114. krsort <ul><li>Sort an array by key in reverse order </li></ul><ul><li>bool krsort ( array &$array [, int $sort_flags] ) </li></ul><ul><li>Sorts an array by key in reverse order, maintaining key to data correlations. This is useful mainly for associative arrays. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul><?php $fruits = array(&quot;d&quot;=>&quot;lemon&quot;, &quot;a&quot;=>&quot;orange&quot;, &quot;b&quot;=>&quot;banana&quot;, &quot;c&quot;=>&quot;apple&quot;); krsort($fruits); foreach ($fruits as $key => $val) {    echo &quot;$key = $val &quot;; } ?> The above example will output: d = lemon c = apple b = banana a = orange
  115. 115. natsort <ul><li>Sort an array using a &quot;natural order&quot; algorithm </li></ul><ul><li>bool natsort ( array &$array ) </li></ul><ul><li>This function implements a sort algorithm that orders alphanumeric strings in the way a human being would while maintaining key/value associations. This is described as a &quot;natural ordering&quot;. An example of the difference between this algorithm and the regular computer string sorting algorithms (used in sort()) can be seen below: </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul><ul><li>natcasesort -- case insensitive. </li></ul>
  116. 116. natsort <?php $array1 = $array2 = array(&quot;img12.png&quot;, &quot;img10.png&quot;, &quot;img2.png&quot;, &quot;img1.png&quot;); sort($array1); echo &quot;Standard sorting &quot;; print_r($array1); natsort($array2); echo &quot; Natural order sorting &quot;; print_r($array2); ?> The above example will output: Standard sorting Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png ) Natural order sorting Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
  117. 117. usort <ul><li>Sort an array by values using a user-defined comparison function </li></ul><ul><li>Description </li></ul><ul><li>bool usort ( array &$array, callback $cmp_function ) </li></ul><ul><li>This function will sort an array by its values using a user-supplied comparison function. If the array you wish to sort needs to be sorted by some non-trivial criteria, you should use this function. </li></ul><ul><li>The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. </li></ul>
  118. 118. usort <?php function cmp($a, $b) {    if ($a == $b) {        return 0;    }    return ($a < $b) ? -1 : 1; } $a = array(3, 2, 5, 6, 1); usort($a, &quot;cmp&quot;); foreach ($a as $key => $value) {    echo &quot;$key: $value &quot;; } ?> The above example will output: 0: 1 1: 2 2: 3 3: 5 4: 6
  119. 119. usort <ul><li>Note: If two members compare as equal, their order in the sorted array is undefined. Up to PHP 4.0.6 the user defined functions would keep the original order for those elements, but with the new sort algorithm introduced with 4.1.0 this is no longer the case as there is no solution to do so in an efficient way. </li></ul><ul><li>Note: This function assigns new keys for the elements in array. It will remove any existing keys you may have assigned, rather than just reordering the keys. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul>
  120. 120. uasort <ul><li>Sort an array with a user-defined comparison function and maintain index association </li></ul><ul><li>bool uasort ( array &$array, callback $cmp_function ) </li></ul><ul><li>This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. The comparison function is user-defined. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul>
  121. 121. uksort <ul><li>Sort an array by keys using a user-defined comparison function </li></ul><ul><li>bool uksort ( array &$array, callback $cmp_function ) </li></ul><ul><li>uksort() will sort the keys of an array using a user-supplied comparison function. If the array you wish to sort needs to be sorted by some non-trivial criteria, you should use this function. </li></ul><ul><li>Function cmp_function should accept two parameters which will be filled by pairs of array keys. The comparison function must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul>
  122. 122. uksort <?php function cmp($a, $b) {    $a = ereg_replace('^(a|an|the) ', '', $a);    $b = ereg_replace('^(a|an|the) ', '', $b);    return strcasecmp($a, $b); } The above example will output: an apple: 3 a banana: 4 the Earth: 2 John: 1 $a = array(&quot;John&quot; => 1, &quot;the Earth&quot; => 2, &quot;an apple&quot; => 3, &quot;a banana&quot; => 4); uksort($a, &quot;cmp&quot;); foreach ($a as $key => $value) {    echo &quot;$key: $value &quot;; } ?>
  123. 123. list <ul><li>Assign variables as if they were an array </li></ul><ul><li>void list ( mixed $varname, mixed $... ) </li></ul><ul><li>Like array(), this is not really a function, but a language construct. list() is used to assign a list of variables in one operation. </li></ul><ul><li>Note: list() only works on numerical arrays and assumes the numerical indices start at 0. </li></ul><?php $info = array('coffee', 'brown', 'caffeine'); // Listing all the variables list($drink, $color, $power) = $info; echo &quot;$drink is $color and $power makes it special. &quot;; // Listing some of them list($drink, , $power) = $info; echo &quot;$drink has $power. &quot;; // Or let's skip to only the third one list( , , $power) = $info; echo &quot;I need $power! &quot;; ?>
  124. 124. shuffle <ul><li>Shuffle an array </li></ul><ul><li>bool shuffle ( array &$array ) </li></ul><ul><li>This function shuffles (randomizes the order of the elements in) an array. Note: This function assigns new keys for the elements in array. It will remove any existing keys you may have assigned, rather than just reordering the keys. </li></ul><?php $numbers = range(1, 20); shuffle($numbers); foreach ($numbers as $number) {    echo &quot;$number &quot;; } ?>
  125. 125. array_change_key_case <ul><li>Returns an array with all string keys lowercased or uppercased </li></ul><ul><ul><li>array array_change_key_case ( array $input [, int $case] ) </li></ul></ul><ul><ul><li>array_change_key_case() changes the keys in the input array to be all lowercase or uppercase. </li></ul></ul><ul><ul><li>The change depends on the last optional case parameter. </li></ul></ul><ul><ul><li>You can pass two constants there, CASE_UPPER and CASE_LOWER. The default is CASE_LOWER. </li></ul></ul><ul><ul><li>The function will leave number indices as is. </li></ul></ul><?php $input_array = array(&quot;FirSt&quot; => 1, &quot;SecOnd&quot; => 4); print_r(array_change_key_case($input_array, CASE_UPPER)); ?> The above example will output: Array ( [FIRST] => 1 [SECOND] => 4 )
  126. 126. array_chunk() <ul><li>Split an array into chunks </li></ul><ul><ul><li>array array_chunk ( array $input, int $size [, bool $preserve_keys] ) </li></ul></ul><ul><ul><li>array_chunk() splits the array into several arrays with size values in them. You may also have an array with less values at the end. You get the arrays as members of a multidimensional array indexed with numbers starting from zero. </li></ul></ul><?php $input_array = array('a', 'b', 'c', 'd', 'e'); print_r(array_chunk($input_array, 2)); ?> The below example will output: Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [0] => c [1] => d ) [2] => Array ( [0] => e ) )
  127. 127. array_chunk() <ul><li>By setting the optional preserve_keys parameter to TRUE, you can force PHP to preserve the original keys from the input array. </li></ul><ul><li>If you specify FALSE new number indices will be used in each resulting array with indices starting from zero. The default is FALSE. </li></ul><?php $input_array = array('a', 'b', 'c', 'd', 'e'); print_r(array_chunk($input_array, 2, true)); ?> The below example will output: Array ( [0] => Array ( [0] => a [1] => b ) [1] => Array ( [2] => c [3] => d ) [2] => Array ( [4] => e ) )
  128. 128. key <ul><li>Fetch a key from an associative array </li></ul><ul><li>mixed key ( array &$array ) </li></ul><ul><li>key() returns the index element of the current array position. </li></ul><?php $array = array(    'fruit1' => 'apple',    'fruit2' => 'orange',    'fruit3' => 'grape',    'fruit4' => 'apple',    'fruit5' => 'apple'); / / this cycle echoes all associative array // key where value equals &quot;apple&quot; while ($fruit_name = current($array)) {    if ($fruit_name == 'apple') {        echo key($array).'<br />';    }    next($array); } ?>
  129. 129. count <ul><li>Count elements in an array, or properties in an object </li></ul><ul><li>int count ( mixed $var [, int $mode] ) </li></ul><ul><li>Returns the number of elements in var, which is typically an array, since anything else will have one element. </li></ul><ul><li>For objects, if you have SPL installed, you can hook into count() by implementing interface Countable. The interface has exactly one method, count(), which returns the return value for the count() function. </li></ul><ul><li>If var is not an array or an object with implemented Countable interface, 1 will be returned. There is one exception, if var is NULL, 0 will be returned. </li></ul><ul><li>The optional mode parameter is available as of PHP 4.2.0. </li></ul><ul><li>If the optional mode parameter is set to COUNT_RECURSIVE (or 1), count() will recursively count the array. This is particularly useful for counting all the elements of a multidimensional array. The default value for mode is 0. count() does not detect infinite recursion. </li></ul>
  130. 130. count <?php $a[0] = 1; $a[1] = 3; $a[2] = 5; $result = count($a); // $result == 3 $b[0]  = 7; $b[5]  = 9; $b[10] = 11; $result = count($b); // $result == 3 $result = count(null); // $result == 0 $result = count(false); // $result == 1 ?> sizeof — Alias of count()
  131. 131. current <ul><li>Return the current element in an array </li></ul><ul><li>Description </li></ul><ul><li>mixed current ( array &$array ) </li></ul><ul><li>Every array has an internal pointer to its &quot;current&quot; element, which is initialized to the first element inserted into the array. </li></ul><ul><li>The current() function simply returns the value of the array element that's currently being pointed to by the internal pointer. It does not move the pointer in any way. If the internal pointer points beyond the end of the elements list, current() returns FALSE. </li></ul><ul><li>Pos is alias of current </li></ul>
  132. 132. next <ul><li>Advance the internal array pointer of an array </li></ul><ul><li>mixed next ( array &$array ) </li></ul><ul><li>Returns the array value in the next place that's pointed to by the internal array pointer, or FALSE if there are no more elements. </li></ul><ul><li>next() behaves like current(), with one difference. It advances the internal array pointer one place forward before returning the element value. That means it returns the next array value and advances the internal array pointer by one. If advancing the internal array pointer results in going beyond the end of the element list, next() returns FALSE. </li></ul><?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport);    // $mode = 'bike'; $mode = next($transport);    // $mode = 'car'; $mode = prev($transport);    // $mode = 'bike'; $mode = end($transport);    // $mode = 'plane'; ?>
  133. 133. prev <ul><li>Rewind the internal array pointer </li></ul><ul><li>mixed prev ( array &$array ) </li></ul><ul><li>Returns the array value in the previous place that's pointed to by the internal array pointer, or FALSE if there are no more elements. </li></ul><?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport);    // $mode = 'bike'; $mode = next($transport);    // $mode = 'car'; $mode = prev($transport);    // $mode = 'bike'; $mode = end($transport);    // $mode = 'plane'; ?>
  134. 134. each <ul><li>Return the current key and value pair from an array and advance the array cursor </li></ul><ul><li>Description </li></ul><ul><li>array each ( array &$array ) </li></ul><ul><li>Returns the current key and value pair from the array array and advances the array cursor. This pair is returned in a four-element array, with the keys 0, 1, key, and value. Elements 0 and key contain the key name of the array element, and 1 and value contain the data. </li></ul><ul><li>If the internal pointer for the array points past the end of the array contents, each() returns FALSE. </li></ul>
  135. 135. each <?php $foo = array(&quot;bob&quot;, &quot;fred&quot;, &quot;jussi&quot;, &quot;jouni&quot;, &quot;egon&quot;, &quot;marliese&quot;); $bar = each($foo); print_r($bar); ?> $bar now contains the following key/value pairs: Array ( [1] => bob [value] => bob [0] => 0 [key] => 0 ) <?php $foo = array(&quot;Robert&quot; => &quot;Bob&quot;, &quot;Seppo&quot; => &quot;Sepi&quot;); $bar = each($foo); print_r($bar); ?> $bar now contains the following key/value pairs: Array ( [1] => Bob [value] => Bob [0] => Robert [key] => Robert )
  136. 136. end <ul><li>Set the internal pointer of an array to its last element </li></ul><ul><li>mixed end ( array &$array ) </li></ul><ul><li>end() advances array's internal pointer to the last element, and returns its value. </li></ul><?php $fruits = array('apple', 'banana', 'cranberry'); echo end($fruits); // cranberry ?>
  137. 137. reset <ul><li>Set the internal pointer of an array to its first element </li></ul><ul><li>mixed reset ( array &$array ) </li></ul><ul><li>reset() rewinds array's internal pointer to the first element and returns the value of the first array element, or FALSE if the array is empty. </li></ul>
  138. 138. reset <?php $array = array('step one', 'step two', 'step three', 'step four'); // by default, the pointer is on the first element echo current($array) . &quot;<br /> &quot;; // &quot;step one&quot; // skip two steps next($array); next($array); echo current($array) . &quot;<br /> &quot;; // &quot;step three&quot; // reset pointer, start again on step one reset($array); echo current($array) . &quot;<br /> &quot;; // &quot;step one&quot; ?>
  139. 139. range <ul><li>Create an array containing a range of elements </li></ul><ul><li>array range ( mixed $low, mixed $high [, number $step] ) </li></ul><ul><li>range() returns an array of elements from low to high, inclusive. If low > high, the sequence will be from high to low. </li></ul><ul><li>New parameter: The optional step parameter was added in 5.0.0. </li></ul><ul><li>If a step value is given, it will be used as the increment between elements in the sequence. step should be given as a positive number. If not specified, step will default to 1. </li></ul>
  140. 140. range // array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'); foreach (range('a', 'i') as $letter) {    echo $letter; } // array('c', 'b', 'a'); foreach (range('c', 'a') as $letter) {    echo $letter; } ?> ?php // array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) foreach (range(0, 12) as $number) {    echo $number; } // The step parameter was introduced in 5.0.0 // array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100) foreach (range(0, 100, 10) as $number) {    echo $number; }
  141. 141. in_array() <ul><li>Checks if a value exists in an array </li></ul><ul><li>bool in_array ( mixed $needle, array $haystack [, bool $strict] ) </li></ul><ul><li>Searches haystack for needle and returns TRUE if it is found in the array, FALSE otherwise. </li></ul><ul><li>If the third parameter strict is set to TRUE then the in_array() function will also check the types of the needle in the haystack. </li></ul><ul><li>Note: If needle is a string, the comparison is done in a case-sensitive manner. </li></ul><ul><li>Note: In PHP versions before 4.2.0 needle was not allowed to be an array. </li></ul>
  142. 142. in_array <?php $os = array(&quot;Mac&quot;, &quot;NT&quot;, &quot;Irix&quot;, &quot;Linux&quot;); if (in_array(&quot;Irix&quot;, $os)) {    echo &quot;Got Irix&quot;; } if (in_array(&quot;mac&quot;, $os)) {    echo &quot;Got mac&quot;; } ?> The second condition fails because in_array() is case-sensitive, so the program above will display: Got Irix
  143. 143. extract <ul><li>Import variables into the current symbol table from an array </li></ul><ul><li>nt extract ( array $var_array [, int $extract_type [, string $prefix]] ) </li></ul><ul><li>This function is used to import variables from an array into the current symbol table. It takes an associative array var_array and treats keys as variable names and values as variable values. For each key/value pair it will create a variable in the current symbol table, subject to extract_type and prefix parameters. </li></ul>
  144. 144. array_count_values <ul><li>Counts all the values of an array </li></ul><ul><ul><li>array array_count_values ( array $input ) </li></ul></ul><ul><ul><ul><li>array_count_values() returns an array using the values of the input array as keys and their frequency in input as values. </li></ul></ul></ul><?php $array = array(1, &quot;hello&quot;, 1, &quot;world&quot;, &quot;hello&quot;); print_r(array_count_values($array)); ?> The above example will output: Array ( [1] => 2 [hello] => 2 [world] => 1 )
  145. 145. array_sum <ul><li>Calculate the sum of values in an array </li></ul><ul><li>number array_sum ( array $array ) </li></ul><ul><li>array_sum() returns the sum of values in an array as an integer or float. </li></ul><?php $a = array(2, 4, 6, 8); echo &quot;sum(a) = &quot; . array_sum($a) . &quot; &quot;; $b = array(&quot;a&quot; => 1.2, &quot;b&quot; => 2.3, &quot;c&quot; => 3.4); echo &quot;sum(b) = &quot; . array_sum($b) . &quot; &quot;; ?> The above example will output: sum(a) = 20 sum(b) = 6.9
  146. 146. array_values <ul><li>Return all the values of an array </li></ul><ul><li>array array_values ( array $input ) </li></ul><ul><li>array_values() returns all the values from the input array and indexes numerically the array. </li></ul><?php $array = array(&quot;size&quot; => &quot;XL&quot;, &quot;color&quot; => &quot;gold&quot;); print_r(array_values($array)); ?> The above example will output: Array (    [0] => XL    [1] => gold )
  147. 147. array_pad <ul><li>Pad array to the specified length with a value. </li></ul><ul><li>array array_pad ( array $input, int $pad_size, mixed $pad_value ) </li></ul><ul><li>array_pad() returns a copy of the input padded to size specified by pad_size with value pad_value. If pad_size is positive then the array is padded on the right, if it's negative then on the left. If the absolute value of pad_size is less than or equal to the length of the input then no padding takes place. It is possible to add most 1048576 elements at a time. </li></ul><?php $input = array(12, 10, 9); $result = array_pad($input, 5, 0); // result is array(12, 10, 9, 0, 0) $result = array_pad($input, -7, -1); // result is array(-1, -1, -1, -1, 12, 10, 9) $result = array_pad($input, 2, &quot;noop&quot;); // not padded ?> www.intellibitz.com [email_address]
  148. 148. array_pop <ul><li>Pop the element off the end of array </li></ul><ul><li>mixed array_pop ( array &$array ) </li></ul><ul><li>array_pop() pops and returns the last value of the array, shortening the array by one element. If array is empty (or is not an array), NULL will be returned. </li></ul><?php $stack = array(&quot;orange&quot;, &quot;banana&quot;, &quot;apple&quot;, &quot;raspberry&quot;); $fruit = array_pop($stack); print_r($stack); ?> After this, $stack will have only 3 elements: Array (    [0] => orange    [1] => banana    [2] => apple ) and raspberry will be assigned to $fruit.
  149. 149. array_push <ul><li>Push one or more elements onto the end of array </li></ul><ul><li>int array_push ( array &$array, mixed $var [, mixed $...] ) </li></ul><ul><li>array_push() treats array as a stack, and pushes the passed variables onto the end of array. The length of array increases by the number of variables pushed. </li></ul><?php $stack = array(&quot;orange&quot;, &quot;banana&quot;); array_push($stack, &quot;apple&quot;, &quot;raspberry&quot;); print_r($stack); ?> The above example will output: Array (    [0] => orange    [1] => banana    [2] => apple    [3] => raspberry )
  150. 150. array_push <ul><li>array_push has the same effect as: </li></ul><ul><li><?php </li></ul><ul><li>$array[] = $var; </li></ul><ul><li>?> </li></ul><ul><li>repeated for each var. </li></ul><ul><li>Returns the new number of elements in the array. array_push() will raise a warning if the first argument is not an array. This differs from the $var[] behaviour where a new array is created. </li></ul>
  151. 151. compact <ul><li>Create array containing variables and their values </li></ul><ul><li>array compact ( mixed $varname [, mixed $...] ) </li></ul><ul><li>compact() takes a variable number of parameters. Each parameter can be either a string containing the name of the variable, or an array of variable names. The array can contain other arrays of variable names inside it; compact() handles it recursively. </li></ul><ul><li>For each of these, compact() looks for a variable with that name in the current symbol table and adds it to the output array such that the variable name becomes the key and the contents of the variable become the value for that key. In short, it does the opposite of extract(). It returns the output array with all the variables added to it. </li></ul><ul><li>Any strings that are not set will simply be skipped. </li></ul>
  152. 152. array_product <ul><li>Calculate the product of values in an array </li></ul><ul><li>number array_product ( array $array ) </li></ul><ul><li>array_product() returns the product of values in an array as an integer or float. </li></ul><?php $a = array(2, 4, 6, 8); echo &quot;product(a) = &quot; . array_product($a) . &quot; &quot;; ?> The above example will output: product(a) = 384
  153. 153. array_rand <ul><li>Pick one or more random entries out of an array </li></ul><ul><li>mixed array_rand ( array $input [, int $num_req] ) </li></ul><ul><li>array_rand() is rather useful when you want to pick one or more random entries out of an array. It takes an input array and an optional argument num_req which specifies how many entries you want to pick - if not specified, it defaults to 1. </li></ul><ul><li>If you are picking only one entry, array_rand() returns the key for a random entry. Otherwise, it returns an array of keys for the random entries. This is done so that you can pick random keys as well as values out of the array. </li></ul><?php $input = array(&quot;Neo&quot;, &quot;Morpheus&quot;, &quot;Trinity&quot;, &quot;Cypher&quot;, &quot;Tank&quot;); $rand_keys = array_rand($input, 2); echo $input[$rand_keys[0]] . &quot; &quot;; echo $input[$rand_keys[1]] . &quot; &quot;; ?>
  154. 154. array_walk <ul><li>Apply a user function to every member of an array </li></ul><ul><li>bool array_walk ( array &$array, callback $funcname [, mixed $userdata] ) </li></ul><ul><li>Returns TRUE on success or FALSE on failure. </li></ul><ul><li>Applies the user-defined function funcname to each element of the array array. Typically, funcname takes on two parameters. The array parameter's value being the first, and the key/index second. If the optional userdata parameter is supplied, it will be passed as the third parameter to the callback funcname. </li></ul>
  155. 155. array_walk <?php $fruits = array(&quot;d&quot; => &quot;lemon&quot;, &quot;a&quot; => &quot;orange&quot;, &quot;b&quot; => &quot;banana&quot;, &quot;c&quot; => &quot;apple&quot;); function test_alter(&$item1, $key, $prefix) {    $item1 = &quot;$prefix: $item1&quot;; } function test_print($item2, $key) {    echo &quot;$key. $item2<br /> &quot;; } This example will output: Before ...: d. lemon a. orange b. banana c. apple ... and after: d. fruit: lemon a. fruit: orange b. fruit: banana c. fruit: apple echo &quot;Before ...: &quot;; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'fruit'); echo &quot;... and after: &quot;; array_walk($fruits, 'test_print'); ?>
  156. 156. array_unique <ul><li>Removes duplicate values from an array </li></ul><ul><li>array array_unique ( array $array ) </li></ul><ul><li>array_unique() takes input array and returns a new array without duplicate values. </li></ul><ul><li>Note that keys are preserved. array_unique() sorts the values treated as string at first, then will keep the first key encountered for every value, and ignore all following keys. It does not mean that the key of the first related value from the unsorted array will be kept. </li></ul><ul><li>Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same. </li></ul><ul><li>The first element will be used. </li></ul>
  157. 157. array_unique <?php $input = array(&quot;a&quot; => &quot;green&quot;, &quot;red&quot;, &quot;b&quot; => &quot;green&quot;, &quot;blue&quot;, &quot;red&quot;); $result = array_unique($input); print_r($result); ?> The above example will output: Array (    [a] => green    [0] => red    [1] => blue ) <?php $input = array(4, &quot;4&quot;, &quot;3&quot;, 4, 3, &quot;3&quot;); $result = array_unique($input); var_dump($result); ?> The above example will output: array(2) {   [0] => int(4)   [2] => string(1) &quot;3&quot; }
  158. 158. array_map <ul><li>Applies the callback to the elements of the given arrays </li></ul><ul><li>array array_map ( callback $callback, array $arr1 [, array $...] ) </li></ul><ul><li>array_map() returns an array containing all the elements of arr1 after applying the callback function to each one. The number of parameters that the callback function accepts should match the number of arrays passed to the array_map() </li></ul>?php function cube($n) {    return($n * $n * $n); } $a = array(1, 2, 3, 4, 5); $b = array_map(&quot;cube&quot;, $a); print_r($b); ?> This makes $b have: Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )
  159. 159. array_reduce <ul><li>Iteratively reduce the array to a single value using a callback function </li></ul><ul><li>mixed array_reduce ( array $input, callback $function [, int $initial] ) </li></ul><?php function rsum($v, $w) {    $v += $w;    return $v; } $a = array(1, 2, 3, 4, 5); $x = array(); $b = array_reduce($a, &quot;rsum&quot;); $c = array_reduce($a, &quot;rmul&quot;, 10); $d = array_reduce($x, &quot;rsum&quot;, 1); ?> This will result in $b containing 15, $c containing 1200 (= 10*1*2*3*4*5), and $d containing 1. function rmul($v, $w) {    $v *= $w;    return $v; }
  160. 160. array_reduce <ul><li>array_reduce() applies iteratively the function function to the elements of the array input, so as to reduce the array to a single value. </li></ul><ul><li>If the optional initial is available, it will be used at the beginning of the process, or as a final result in case the array is empty. </li></ul><ul><li>If the array is empty and initial is not passed, array_reduce() returns NULL. </li></ul>
  161. 161. array_reverse <ul><li>Return an array with elements in reverse order </li></ul><ul><li>array array_reverse ( array $array [, bool $preserve_keys] ) </li></ul><ul><li>array_reverse() takes input array and returns a new array with the order of the elements reversed, preserving the keys if preserve_keys is TRUE. </li></ul>
  162. 162. array_reverse <?php $input  = array(&quot;php&quot;, 4.0, array(&quot;green&quot;, &quot;red&quot;)); $result = array_reverse($input); $result_keyed = array_reverse($input, true); ?> Array (    [2] => Array        (            [0] => green            [1] => red        )    [1] => 4    [0] => php ) Array (    [0] => Array        (            [0] => green            [1] => red        )    [1] => 4    [2] => php ) $result will be $result_keyed will be: This makes both $result and $result_keyed have the same elements, but note the difference between the keys.
  163. 163. array_search <ul><li>Searches the array for a given value and returns the corresponding key if successful mixed array_search ( mixed $needle, array $haystack [, bool $strict] ) </li></ul><ul><li>Searches haystack for needle and returns the key if it is found in the array, FALSE otherwise. </li></ul><ul><li>If needle is a string, the comparison is done in a case-sensitive manner. </li></ul><ul><li>Prior to PHP 4.2.0, array_search() returns NULL on failure instead of FALSE. </li></ul><ul><li>If the optional third parameter strict is set to TRUE then the array_search() will also check the types of the needle in the haystack. </li></ul><?php $array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); $key = array_search('green', $array); // $key = 2; $key = array_search('red', $array);  // $key = 1; ?>
  164. 164. array_shift <ul><li>Shift an element off the beginning of array </li></ul><ul><li>mixed array_shift ( array &$array ) </li></ul><ul><li>array_shift() shifts the first value of the array off and returns it, shortening the array by one element and moving everything down. </li></ul><ul><li>All numerical array keys will be modified to start counting from zero while literal keys won't be touched. If array is empty (or is not an array), NULL will be returned. </li></ul><ul><li>This function will reset() the array pointer after use. </li></ul>
  165. 165. array_shift <?php $stack = array(&quot;orange&quot;, &quot;banana&quot;, &quot;apple&quot;, &quot;raspberry&quot;); $fruit = array_shift($stack); print_r($stack); ?> This would result in $stack having 3 elements left: Array (    [0] => banana    [1] => apple    [2] => raspberry ) and orange will be assigned to $fruit.
  166. 166. array_unshift <ul><li>Prepend one or more elements to the beginning of an array </li></ul><ul><li>int array_unshift ( array &$array, mixed $var [, mixed $...] ) </li></ul><ul><li>array_unshift() prepends passed elements to the front of the array. Note that the list of elements is prepended as a whole, so that the prepended elements stay in the same order. All numerical array keys will be modified to start counting from zero while literal keys won't be touched. </li></ul><ul><li>Returns the new number of elements in the array </li></ul><?php $queue = array(&quot;orange&quot;, &quot;banana&quot;); array_unshift($queue, &quot;apple&quot;, &quot;raspberry&quot;); print_r($queue); ?> The above example will output: Array (    [0] => apple    [1] => raspberry    [2] => orange    [3] => banana )
  167. 167. array_slice <ul><li>Extract a slice of the array </li></ul><ul><li>rray array_slice ( array $array, int $offset [, int $length [, bool $preserve_keys]] ) </li></ul><ul><li>array_slice() returns the sequence of elements from the array array as specified by the offset and length parameters. </li></ul>
  168. 168. array_slice <ul><li>if offset is non-negative, the sequence will start at that offset in the array. If offset is negative, the sequence will start that far from the end of the array. </li></ul><ul><li>If length is given and is positive, then the sequence will have that many elements in it. If length is given and is negative then the sequence will stop that many elements from the end of the array. If it is omitted, then the sequence will have everything from offset up until the end of the array. </li></ul>
  169. 169. array_slice <?php $input = array(&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;); $output = array_slice($input, 2);      // returns &quot;c&quot;, &quot;d&quot;, and &quot;e&quot; $output = array_slice($input, -2, 1);  // returns &quot;d&quot; $output = array_slice($input, 0, 3);  // returns &quot;a&quot;, &quot;b&quot;, and &quot;c&quot; // note the differences in the array keys print_r(array_slice($input, 2, -1)); print_r(array_slice($input, 2, -1, true)); Array ( [0] => c [1] => d ) Array ( [2] => c [3] => d )
  170. 170. array_splice <ul><li>Remove a portion of the array and replace it with something else </li></ul><ul><li>array array_splice ( array &$input, int $offset [, int $length [, array $replacement]] ) </li></ul><?php $input = array(&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;, &quot;yellow&quot;); array_splice($input, 2); // $input is now array(&quot;red&quot;, &quot;green&quot;) $input = array(&quot;red&quot;, &quot;green&quot;, &quot;blue&quot;, &quot;yellow&quot;); array_splice($input, 1, -1); // $input is now array(&quot;red&quot;, &quot;yellow&quot;)
  171. 171. array_splice <ul><li>If offset is positive then the start of removed portion is at that offset from the beginning of the input array. </li></ul><ul><li>If offset is negative then it starts that far from the end of the input array. </li></ul><ul><li>If length is omitted, removes everything from offset to the end of the array. If length is specified and is positive, then that many elements will be removed. If length is specified and is negative then the end of the removed portion will be that many elements from the end of the array. Tip: to remove everything from offset to the end of the array when replacement is also specified, use count($input) for length. </li></ul><ul><li>If replacement array is specified, then the removed elements are replaced with elements from this array. If offset and length are such that nothing is removed, then the elements from the replacement array are inserted in the place specified by the offset. Note that keys in replacement array are not preserved. If replacement is just one element it is not necessary to put array() around it, unless the element is an array itself. </li></ul>
  172. 172. array_merge <ul><li>array array_merge ( array $array1 [, array $array2 [, array $...]] ) </li></ul><ul><li>array_merge() merges the elements of one or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array. </li></ul><ul><li>If the input arrays have the same string keys, then the later value for that key will overwrite the previous one. If, however, the arrays contain numeric keys, the later value will not overwrite the original value, but will be appended. </li></ul><?php $array1 = array( &quot;color&quot; => &quot;red&quot;, 2, 4); $array2 = array( &quot;a&quot;, &quot;b&quot;, &quot;color&quot; => &quot;green&quot;, &quot;shape&quot; => &quot;trapezoid&quot;,4); $result = array_merge($array1, $array2); print_r($result); ?> This example will output: Array (    [color] => green    [0] => 2    [1] => 4    [2] => a    [3] => b    [shape] => trapezoid    [4] => 4 )
  173. 173. array_merge_recursive <ul><li>If the input arrays have the same string keys, then the values for these keys are merged together into an array, and this is done recursively, so that if one of the values is an array itself, the function will merge it with a corresponding entry in another array too. </li></ul><?php $ar1 = array(&quot;color&quot; => array(&quot;favorite&quot; => &quot;red&quot;), 5); $ar2 = array(10, &quot;color&quot; => array(&quot;favorite&quot; => &quot;green&quot;, &quot;blue&quot;)); $result = array_merge_recursive($ar1, $ar2); print_r($result); ?> Array (    [color] => Array        (            [favorite] => Array                (                    [0] => red                    [1] => green                )            [0] => blue )   [0] => 5    [1] => 10 )
  174. 174. array_key <ul><li>Return all the keys of an array </li></ul><ul><li>array array_keys ( array $input [, mixed $search_value [, bool $strict]] ) </li></ul><ul><li>array_keys() returns the keys, numeric and string, from the input array. </li></ul><ul><li>If the optional search_value is specified, then only the keys for that value are returned. Otherwise, all the keys from the input are returned. As of PHP 5, you can use strict parameter for comparison including type (===). </li></ul>
  175. 175. array_key <?php $array = array(0 => 100, &quot;color&quot; => &quot;red&quot;); print_r(array_keys($array)); $array = array(&quot;blue&quot;, &quot;red&quot;, &quot;green&quot;, &quot;blue&quot;, &quot;blue&quot;); print_r(array_keys($array, &quot;blue&quot;)); $array = array(&quot;color&quot; => array(&quot;blue&quot;, &quot;red&quot;, &quot;green&quot;),                &quot;size&quot;  => array(&quot;small&quot;, &quot;medium&quot;, &quot;large&quot;)); print_r(array_keys($array)); ?> The above example will output: Array ( [0] => 0 [1] => color ) Array ( [0] => 0 [1] => 3 [2] => 4 ) Array ( [0] => color [1] => size )
  176. 176. array_key_exists <ul><li>Checks if the given key or index exists in the array </li></ul><ul><li>bool array_key_exists ( mixed $key, array $search ) </li></ul><ul><li>array_key_exists() returns TRUE if the given key is set in the array. key can be any value possible for an array index. array_key_exists() also works on objects. The name of this function is key_exists() in PHP 4.0.6. </li></ul><?php $search_array = array('first' => 1, 'second' => 4); if (array_key_exists('first', $search_array)) {    echo &quot;The 'first' element is in the array&quot;; } ?> <?php $search_array = array('first' => null, 'second' => 4); // returns false isset($search_array['first']); // returns true array_key_exists('first', $search_array); ?>
  177. 177. array_fill <ul><li>Fill an array with values </li></ul><ul><ul><li>array array_fill ( int $start_index, int $num, mixed $value ) </li></ul></ul><ul><ul><li>array_fill() fills an array with num entries of the value of the value parameter, keys starting at the start_index parameter. Note that num must be a number greater than zero, or PHP will throw a warning. </li></ul></ul>?php $a = array_fill(5, 6, 'banana'); print_r($a); ?> $a now is: Array ( [5] => banana [6] => banana [7] => banana [8] => banana [9] => banana [10] => banana )
  178. 178. array_fill_keys <ul><li>Fill an array with values, specifying keys </li></ul><ul><li>array array_fill_keys ( array $keys, mixed $value ) </li></ul><ul><li>array_fill_keys() fills an array with the value of the value parameter, using the values of the keys array as keys. </li></ul><?php $keys = array('foo', 5, 10, 'bar'); $a = array_fill_keys($keys, 'banana'); print_r($a); ?> $a now is: Array ( [foo] => banana [5] => banana [10] => banana [bar] => banana )
  179. 179. array_flip <ul><li>Exchanges all keys with their associated values in an array </li></ul><ul><li>array array_flip ( array $trans ) </li></ul><ul><li>array_flip() returns an array in flip order, i.e. keys from trans become values and values from trans become keys. </li></ul><ul><li>Note that the values of trans need to be valid keys, i.e. they need to be either integer or string. A warning will be emitted if a value has the wrong type, and the key/value pair in question will not be flipped. </li></ul><ul><li>If a value has several occurrences, the latest key will be used as its values, and all others will be lost. </li></ul><ul><li>array_flip() returns FALSE if it fails. </li></ul><?php $trans = array(&quot;a&quot; => 1, &quot;b&quot; => 1, &quot;c&quot; => 2); $trans = array_flip($trans); print_r($trans); ?> now $trans is: Array ( [1] => b [2] => c )
  180. 180. array_intersect <ul><li>Computes the intersection of arrays </li></ul><ul><li>array array_intersect ( array $array1, array $array2 [, array $ ...] ) </li></ul><ul><li>array_intersect() returns an array containing all the values of array1 that are present in all the arguments. Note that keys are preserved. </li></ul><ul><ul><li>Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same. </li></ul></ul><?php $array1 = array(&quot;a&quot; => &quot;green&quot;, &quot;red&quot;, &quot;blue&quot;); $array2 = array(&quot;b&quot; => &quot;green&quot;, &quot;yellow&quot;, &quot;red&quot;); $result = array_intersect($array1, $array2); print_r($result); ?> The above example will output: Array (    [a] => green    [0] => red )
  181. 181. array_intersect_key <ul><li>Computes the intersection of arrays using keys for comparison </li></ul><ul><ul><li>array array_intersect_key ( array $array1, array $array2 [, array $ ...] ) </li></ul></ul><ul><ul><li>array_intersect_key() returns an array containing all the values of array1 which have matching keys that are present in all the arguments. </li></ul></ul>
  182. 182. array_intersect_key <ul><li>In our example you see that only the keys 'blue' and 'green' are present in both arrays and thus returned. Also notice that the values for the keys 'blue' and 'green' differ between the two arrays. A match still occurs because only the keys are checked. The values returned are those of array1. </li></ul><ul><li>The two keys from the key => value pairs are considered equal only if (string) $key1 === (string) $key2 . In other words a strict type check is executed so the string representation must be the same. </li></ul><?php $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4); $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'  => 8); var_dump(array_intersect_key($array1, $array2)); ?> The above example will output: array(2) { [&quot;blue&quot;]=> int(1) [&quot;green&quot;]=> int(3) }
  183. 183. array_intersect_uassoc <ul><li>Computes the intersection of arrays with additional index check, compares indexes by a callback function </li></ul><ul><ul><li>array array_intersect_uassoc ( array $array1, array $array2 [, array $ ..., callback $key_compare_func] ) </li></ul></ul><ul><ul><li>array_intersect_uassoc() returns an array containing all the values of array1 that are present in all the arguments. Note that the keys are used in the comparison unlike in array_intersect(). </li></ul></ul><ul><ul><li>The index comparison is done by a user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. </li></ul></ul><?php $array1 = array(&quot;a&quot; => &quot;green&quot;, &quot;b&quot; => &quot;brown&quot;, &quot;c&quot; => &quot;blue&quot;, &quot;red&quot;); $array2 = array(&quot;a&quot; => &quot;GREEN&quot;, &quot;B&quot; => &quot;brown&quot;, &quot;yellow&quot;, &quot;red&quot;); print_r(array_intersect_uassoc($array1, $array2, &quot;strcasecmp&quot;)); ?> The above example will output: Array ( [b] => brown )
  184. 184. array_intersect_assoc <ul><li>Computes the intersection of arrays with additional index check </li></ul><ul><li>array array_intersect_assoc ( array $array1, array $array2 [, array $ ...] ) </li></ul><ul><li>array_intersect_assoc() returns an array containing all the values of array1 that are present in all the arguments. Note that the keys are used in the comparison unlike in array_intersect(). </li></ul><?php $array1 = array(&quot;a&quot; => &quot;green&quot;, &quot;b&quot; => &quot;brown&quot;, &quot;c&quot; => &quot;blue&quot;, &quot;red&quot;); $array2 = array(&quot;a&quot; => &quot;green&quot;, &quot;yellow&quot;, &quot;red&quot;); $result_array = array_intersect_assoc($array1, $array2); print_r($result_array); ?> The above example will output: Array ( [a] => green )
  185. 185. array_intersect_assoc <ul><li>In our example you see that only the pair &quot;a&quot; => &quot;green&quot; is present in both arrays and thus is returned. The value &quot;red&quot; is not returned because in $array1 its key is 0 while the key of &quot;red&quot; in $array2 is 1. </li></ul><ul><li>The two values from the key => value pairs are considered equal only if (string) $elem1 === (string) $elem2 . In other words a strict type check is executed so the string representation must be the same. </li></ul>
  186. 186. array_intersect_ukey <ul><li>Computes the intersection of arrays using a callback function on the keys for comparison </li></ul><ul><li>array array_intersect_ukey ( array $array1, array $array2 [, array $..., callback $key_compare_func] ) </li></ul><ul><li>array_intersect_ukey() returns an array containing all the values of array1 which have matching keys that are present in all the arguments. </li></ul><ul><li>This comparison is done by a user supplied callback function. It must return an integer less than, equal to, or greater than zero if the first key is considered to be respectively less than, equal to, or greater than the second. </li></ul>
  187. 187. array_intersect_ukey <?php function key_compare_func($key1, $key2) {    if ($key1 == $key2)        return 0;    else if ($key1 > $key2)        return 1;    else        return -1; } The above example will output: array(2) { [&quot;blue&quot;]=> int(1) [&quot;green&quot;]=> int(3) } $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple'
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×