Download presentation
Presentation is loading. Please wait.
Published byHilda Barker Modified over 9 years ago
1
1 februari 2016 PHP array
2
1 februari 2010 Titel van de presentatie 2 Een array is een verzameling van waarden // zonder waarden initieren $salaries = array(); // direct met waarden $salaries = array(2000, 1000, 500) ; Het is een rij waarden zonder associatie $salaries[0] = 2000; $salaries[1] = 1000; $salaries[2] = 500;
3
1 februari 2010 Titel van de presentatie 3 $salaries[0] = 2000; $salaries[1] = 1000; $salaries[2] = 500; // voor elke foreach ($salaries as $value) { echo “Salary value is $value”; } // teller for ($i=0; $i < count($salaries); $i++) { echo $salaries[$i]; }
4
1 februari 2010 Array 4 Maak een array a1 met waarden 1, 3, 5, 7, 9, 13, 15 Haal de waarden uit de array met een lus constructie Maak een array a2 met de waarden ´15´, ´3´, ´5´, ´7´, ´1´, ´13´, ´9´ * Gebruik dezelfde lus en laat het verschil zien tussen elementen uit a1 en a2 * voeg -2, 2, 4, 14 toe aan array a1 en a2 en laat de inhoud van beide arrays zien. array_push($a1,-2); Opdrachten
5
1 februari 2010 Array 5 Sorteer beide arrays a1 en a2 sort($a1) Laat het programma nogmaals de inhoud zien van beide arrays. Laat met een enkele echo in waarde zien van het zesde element Wat is fout aan onderstaande regel? for ($i=0; $i <= count($salaries); $i++) { Opdrachten
6
1 februari 2010 Titel van de presentatie 6 Associatieve array naam[‘id’] = waarde // zonder waarden $salaries = array(); // waarden met sleutel $salaries[‘mohammad’]=2000; $salaries[‘qadir’]=1500; $salaries[‘zara’]=500; Echo “Salary of Mohammad is”. $salaries[‘Mohammad’]. “ ”; Echo “Salary of Zara is”. $salaries[‘zara’]. “ ”;
7
1 februari 2010 Titel van de presentatie 7 Associatieve array naam (‘id’ => waarde) // met waarden $salaries = array( ‘mohammad’ => 2000, ‘qadir’ => 1500, ‘zara’ => 500 ); // waarden met sleutel Echo “Salary of Mohammad is”. $salaries[‘Mohammad’]. “ ”; Echo “Salary of Zara is”. $salaries[‘zara’]. “ ”; foreach ($salaries as $id => $value){ echo “Salaris van $id is $value”; }
8
1 februari 2010 Titel van de presentatie 8 Multidimensional Array naam (‘id’ => waarde) $marks = array( ‘mohammad’ => array ( “physics”=> 35, “maths”=> 30, “chemistry”=> 39 ) ); // waarden met sleutel Echo “Mohammad cijfers natuurkunde ”. $marks[‘Mohammad’][‘physics’]. “ ”; Echo “Mohammad cijfers wiskunde ”. $marks[‘Mohammad’][‘math’]. “ ”;
9
1 februari 2010 Array 9 Maak een array a3 van de volgende dataparen 7 = Piet Paulus 4 = Robbert Long 2 = Donald Duck 1 = Jan Pet 3 = Mohammad Mali 0 = Ray Charles Laat de inhoud zien van deze array met een foreach lus. Sorteer de array en kijk of de volgorde veranderd is Laat met een enkele echo zien wat de waarde is van element 4 Voeg een element toe eigen naam $a3[ count($a3) ] = "Bakker"; Opdrachten
10
1 februari 2010 Array 10 Maak een array a4 van de volgende dataparen ‘Je naam’ - achternaam - email - leeftijd Donald - achternaam - email - leeftijd Laat de inhoud zien van deze array met een print-r Sorteer de array en kijk of de volgorde veranderd is Opdrachten
11
1 februari 2010 Titel van de presentatie 11 $a1 = array( "a" => 0, "b" => 1 ); $a2 = array( "aa" => 00, "bb" => 11 ); $together = array( $a1, $a2 ); foreach( $together as $key => $value ) { $together[$key]["c"] = 3 ; } print_r( $together ); Array ( [0] => Array ( [a] => 0 [b] => 1 [c] => 3 ) [1] => Array ( [aa] => 0 [bb] => 11 [c] => 3 ) ) ``
12
1 februari 2010 Titel van de presentatie 12 FunctionBehavior asort() Takes a single array argument. Sorts the key/value pairs by value but keeps the key/value relationship the same arsort() Same as asort but sorts in descending order ksort() Takes a single array argument. Sorts the key/value pairs by key but maintains the key/value relationships krsort() Same as ksort but in descending order sort() Takes a single array argument. Sorts the key/value pairs of an array by their values. Keys may be renumbered to reflect the new ordering of the values rsort() Same as sort but in descending order uasort() Sorts key/value pairs by value using a comparison function as the second argument which returns a negative number if its first argument is before the second, a positive number if the first argument comes after the second, and 0 if the elements are the same uksort() Same as uasort but sorts by the keys rather than the values usort() Same as uasort but key/value associations are not maintained
13
1 februari 2010 Titel van de presentatie 13 Tip van Bart <?php $a = array (1, 2, array ("a", "b", "c", array("d", "e")),3,4,5); var_dump(' '); var_dump($a); var_dump(' '); ?>
14
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition14 Wiley and the book authors, 2002 What are PHP arrays PHP arrays are associative arrays with a little extra thrown in. The associative part means that arrays store element values in association with key values, rather than in a strict linear index order If you store an element in an array, in association with a key, all you need to retrieve it later from that array is the key value $state_location['San_Mateo'] = 'California'; $state = $state_location['San_Mateo']; If you want to associate a numerical ordering with a bunch of values or just store a list of values, all you have to do is use integers as your key values $my_array[1] = 'The first thing'; $my_array[2] = 'The second thing';
15
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition15 Wiley and the book authors, 2002 Associative vs. vector arrays In vector arrays (like those used in C/C++), the contained elements all need to be of the same type, and usually the language compiler needs to know in advance how many such elements there are likely to be double my_array[100]; // this is C Consequently, vector arrays are very fast for storage and lookup since the program knows the exact location of each element and they are stored in a contiguous block of memory PHP arrays are associative (and may be referred to as hashes) Rather than having a fixed number of slots, PHP creates array slots as new elements are added to the array and elements can be of any PHP type
16
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition16 Wiley and the book authors, 2002 Creating arrays There are 4 main ways to create arrays in PHP Direct assignment Simply act as though a variable is already an array and assign a value into it $my_array[1] = 1001; The array() construct Creates a new array from the specification of its elements and associated keys Can be called with no arguments to create an empty array (e.g. to pass into functions which require an array argument) Can also pass in a comma-separated list of elements to be stored and the indices will be automatically created beginning with 0 $fruit_basket = array('apple','orange','banana','pear'); o Where $fruit_basket[0] == 'apple', $fruit_basket[1] == 'orange', etc.
17
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition17 Wiley and the book authors, 2002 Creating arrays (cont.) Specifying indices using array() If you want to create arrays in the previous manner but specify the indices used, instead of simply separating the values with commas, you supply key-value pairs separated by commas where the key and the value are separated by the special symbol => $fruit_basket = array ('red' => 'apple', 'orange' => 'orange', 'yellow' => 'banana', 'green' => 'pear'); Functions returning arrays You can write your own function which returns an array or use one of the built-in PHP functions which return an array and assign it to a variable $my_array = range(6,10); o Is equivalent to $my_array = array(6,7,8,9,10); o Where $my_array[0] == 6;
18
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition18 Wiley and the book authors, 2002 Retrieving values The most direct way to retrieve a value is to use its index If we have stored a value in $my_array at index 5, then $my_array[5] will retrieve that value. If nothing had been stored at index 5 or if $my_array had not been assigned, $my_array[5] will behave as an unbound variable The list() construct is used to assign several array elements to variables in succession $fruit_basket = array('apple','orange','banana'); list($red_fruit,$orange_fruit) = $fruit_basket; The variables in list() will be assigned the elements of the array in the order they were originally stored in the array
19
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition19 Wiley and the book authors, 2002 Multidimensional arrays The arrays we have looked at so far are one-dimensional in that they only require a single key for assigning or retrieving values PHP can easily support multiple-dimensional arrays, with arbitrary numbers of keys Just like one-dimensional arrays, there is no need to declare our intensions in advance, you can just assign values to the index $multi_array[1][2][3][4][5] = 'deep treasure'; Which will create a five-dimensional array with successive keys that happen, in this case, to be five successive integers It may be easier to consider that the values stored in arrays can themselves be arrays. $multi_level[0] = array(1,2,3,4,5); Where $multi_level[0][0] == 1 and $multi_level[0][1] == 2
20
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition20 Wiley and the book authors, 2002 Multidimensional arrays (cont.) $cornucopia = array('fruit' => array('red' => 'apple', 'orange' => 'orange', 'yellow' => 'banana', 'green' => 'pear'), 'flower' => array('red' => 'rose', 'yellow' => 'sunflower', 'purple' => 'iris')); $kind_wanted = 'flower'; $color_wanted = 'purple'; print("The $color_wanted $kind_wanted is {$cornucopia[$kind_wanted][$color_wanted]}"); Would print the message "The purple flower is iris"
21
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition21 Wiley and the book authors, 2002 Inspecting arrays Simple functions for inspecting arrays FunctionBehavior is_array() Takes a single argument of any type and returns a true value if the argument is an array, false otherwise count()/sizeof() Takes an array as an argument and returns the number of nonempty elements in the array (1 for strings & #s) in_array() Takes 2 arguments, the element you are looking for and the array it may be in. If the element is contained as a value in the array, it returns true, otherwise false IsSet($array[$key]) Takes an array[key] form and returns true if the key portion is a valid key for the array
22
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition22 Wiley and the book authors, 2002 Deleting from arrays Deleting an element from an array is just like getting rid of an assigned variable calling the unset() construct unset($my_array[2]); unset($my_other_array['yellow']);
23
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition23 Wiley and the book authors, 2002 Iteration Iteration constructs provide techniques for dealing with array elements in bulk by letting us step or loop through arrays, element by element or key by key In addition to storing values in association with their keys, PHP arrays silently build an ordered list of the key/value pairs that are stored, in the order that they are stored for operations that iterate over the entire contents of the array Each array remembers a particular stored key/value pair as being the current one, and array iteration functions work in part by shifting that current marker through the internal list of keys and values This is commonly referred to as the iteration pointer, although PHP does not support full pointers in the sense that C/C++ programmers may be used to
24
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition24 Wiley and the book authors, 2002 Our favorite iteration method: foreach Our favorite construct for looping through an array is foreach which is somewhat related to Perl's foreach, although it has a different syntax There are 2 flavors of the foreach statement foreach (array_expression as $value_var) loops over the array given by array_expression. On each loop, the value of the current element is assigned to $value_var and the internal array pointer is advanced by one (so on the next loop, you'll be looking at the next element) foreach (array_expression as $key_var => $value_var) does the same thing, except that the current element's key will be assigned to the variable $key_var on each loop array_expression can be any expression which evaluates to an array 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
25
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition25 Wiley and the book authors, 2002 foreach example If you would like to see each of the variables names and values sent to a PHP script via the POST method, you can utilize the foreach construct to loop through the $_POST array print (' Name '. ' Value '); foreach ($_POST as $input_name => $value) { print (" $input_name ". " $value \n"); } print (' ');
26
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition26 Wiley and the book authors, 2002 Iterating with current() and next() foreach is useful in situations where you want to simply loop through an array's values For more control, you can utilize current() and next() The current() function returns the stored value that the current array pointer is pointing to When an array is newly created with elements, the element pointed to will always be the first element added The next() function advances the array pointer and then returns the current value pointed to If the pointer is already pointing to the last stored value, the function returns false If false is a value stored in the array, next will return false even if it has not reached the end of the array To return the array pointer to the first element in the array, use the reset() function
27
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition27 Wiley and the book authors, 2002 Reverse order with end() and prev() Analogous to reset() (which sets the array pointer to the beginning of the array) and next() (which sets the array pointer to the next element in the array and returns its value) are end() and prev() end() moves the pointer to the last element in the array and returns its value prev() moves the pointer to the previous element in the array and returns its value Another function designed to work with iterating through arrays is the key() function which returns the associated key from the current array pointer Note: when passing an array to a function - just like other variables - only a copy of the array is passed, not the original. Subsequent modifications to the array's values or its pointer will be lost once the function returns unless the array is passed by reference
28
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition28 Wiley and the book authors, 2002 Empty values and the each() function One problem with utilizing the next function to determine when the end of the array has been reached is if a false value or a value which is evaluated to be false has been stored in the array $my_array = array(1000,100,0,10,1); print (current($my_array)); while ($current_value = next($my_array)) print ($current_value); Will stop executing when reaching the third element of the array The each() function is similar to next() except that it returns an array of information instead of the value stored at the next location in the loop. Additionally, the each() function returns the information for where the pointer is currently located before incrementing the pointer The each() function returns the following information in an array Key 0/'key': the current key at the array pointer Key 1/'value': the current value at the array pointer
29
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition29 Wiley and the book authors, 2002 each() example To use each to iterate through the $_POST array: print (' Name '. ' Value '); reset ($_POST); while ($current = each($_POST)) { print (" {$current['key']} ". " {$current['value']} \n"); } print (' ');
30
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition30 Wiley and the book authors, 2002 Transformations of arrays PHP offers a host of functions for manipulating your data once you have nicely stored it in an array The functions in this section have in common is that they take your array, do something with it, and return the results in another array array array_keys (array input [,mixed search_value]) returns the keys, numeric and string, from the input array. 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. array array_values ( array input) returns all the values from the input array and indexes numerically the array Simply returns the original array without the keys
31
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition31 Wiley and the book authors, 2002 More array transformation functions array array_count_values ( array input) returns an array using the values of the input array as keys and their frequency in input as values In other words, array_count_values takes an array as input and returns a new array where the values from the original array are the keys for the new array and the values are the number of times each old value occurred in the original array array array_flip ( array trans) returns an array in flip order, i.e. keys from trans become values and values from trans become keys Although array keys are guaranteed to be unique, array values are not. Consequently, any duplicate values in the original array become the same key in the new array (only the latest of the original keys will survive to become the new values) The array values also have to be integers or strings. If values which cannot be converted to keys are encountered, the function will fail and a warning will be issues
32
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition32 Wiley and the book authors, 2002 More array transformation functions array array_reverse ( array array [, bool preserve_keys]) takes input array and returns a new array with the order of the elements reversed, preserving the keys if preserve_keys is TRUE void shuffle ( array array) shuffles (randomizes the order of the elements in) an array Note: calls to srand prior to shuffle is no longer necessary Unlike most functions, shuffle actually modifies the original array and does not return a value array array_merge ( array array1, array array2 [, array...]) merges the elements of two or more arrays together so that the values of one are appended to the end of the previous one. It returns the resulting array 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
33
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition33 Wiley and the book authors, 2002 Sorting PHP offers a host of functions for sorting arrays As we saw earlier, a tension sometimes arises between respecting the key/value associations in an array and treating numerical keys as ordering info that should be changed when the order changes PHP offers variants of the sorting functions for each of these behaviors and also allows sorting in ascending or descending order and by user- supplied ordering functions Conventions used in naming the sorting functions include: An initial a means that the function sorts by value but maintains the association between key/value pairs the way it was An initial k means that it sorts by key but maintains the key/value associations A lack of an initial a or k means that it sorts by value but doesn’t maintain the key/value association (e.g. numerical keys will be renumbered to reflect the new ordering An r before the sort means that the sorting order will be reversed An initial u means that a second argument is expected: the name of a user-defined function that specifies the ordering of any two elements that are being sorted
34
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition34 Wiley and the book authors, 2002 Array sorting functions FunctionBehavior asort() Takes a single array argument. Sorts the key/value pairs by value but keeps the key/value relationship the same arsort() Same as asort but sorts in descending order ksort() Takes a single array argument. Sorts the key/value pairs by key but maintains the key/value relationships krsort() Same as ksort but in descending order sort() Takes a single array argument. Sorts the key/value pairs of an array by their values. Keys may be renumbered to reflect the new ordering of the values rsort() Same as sort but in descending order uasort() Sorts key/value pairs by value using a comparison function as the second argument which returns a negative number if its first argument is before the second, a positive number if the first argument comes after the second, and 0 if the elements are the same uksort() Same as uasort but sorts by the keys rather than the values usort() Same as uasort but key/value associations are not maintained
35
_______________________________________________________________________________________________________________ PHP Bible, 2 nd Edition35 Wiley and the book authors, 2002 Printing functions for arrays (debugging) bool print_r ( mixed expression [, bool return]) displays information about a variable in a way that's readable by humans. If given a string, integer or float, the value itself will be printed. If given an array, values will be presented in a format that shows keys and elements. Similar notation is used for objects. print_r() and var_export() will also show protected and private properties of objects with PHP 5, on the contrary to var_dump().stringintegerfloatarrayobjectvar_export()var_dump() Remember that print_r() will move the array pointer to the end. Use reset() to bring it back to beginningreset()
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.