#ARRAY INTRODUCTION
$studentDetails = array(
"Nahid",
"Mahamud",
8247,
"DRMC"
);
//this is fine too
$studentDetails2 = [
"Nahid",
"Mahamud",
8247,
"DRMC"
];
$n = count($studentDetails);
for( $i=0; $i<$n; $i++ ){
echo $studentDetails[$i]."\n";
}
#ARRAY MANIPULATION
change or modify a value of an existing array
$studentDetails[1] = "Hridoy"; //will replace Mahamud with Hridoy
#array_pop():
Array Pop removes the last item from an array and returns it.
$last_item = array_pop($studentDetails); echo $last_item."\n";
#array_shift():
Array Shift removes the first item from an array and returns it.
$first_item = array_shift($studentDetails); echo $first_item."\n";
#array_push():
Add new data at the end of the Array.
//array_push(arrayname,data); array_push($studentDetails,CSE);
#array_unshift():
Add new data at the first of the Array.
//array_unshift(arrayname,data); array_unshift($studentDetails,Male);
#Associative Array:
$myDetails = [
'First Name'=>'Nahid',
'Last Name'=>'Mahamud',
'College No'=>'8247'
];
echo $myDetails['College No'];
#Associative Array
$foods = [
'vegetables' => 'capsicum, carrot, potato, raddish',
'fruits' => 'apple, orange, banana, grape',
'drinks' => 'water, smoothie, juice',
];
echo "\n";
//show one data
echo $foods['vegetables'];
echo "\n";
//show all data
foreach ( $foods as $key => $value ) {
echo $key."=".$value."\n";
}
//another way
$keys = array_keys($foods);
print_r($keys); //use to print array
#Array to String and String to Array
//STRING TO ARRAY
$language = explode(', ','bangla, english, gemran');
var_dump($language);
echo $language[2];
echo "\n";
//ARRAY TO STRING
$languageStirng = join(', ',$language);
echo $languageStirng;
#Multi-Dimensional Array:
//MULTIDIMENSIONAL ARRAY
$foods = [
'vegetables' => explode(',','capsicum, carrot, potato, raddish'),
'fruits' => explode(',','apple, orange, banana, grape'),
'drinks' => explode(',','water, smoothie, juice'),
];
echo "\n";
print_r($foods);
#Array to JSON:
$stdDetails = [
'First Name'=>'Nahid',
'Last Name'=>'Mahamud',
'College No'=>'8247'
];
$jsonData = json_encode($stdDetails);
echo "\n";
echo $jsonData;
$jsonDataDecode = json_decode($jsonData,true);
echo "\n";
print_r ($jsonDataDecode);
#Array[copy by value & copy by reference]:
$person = [
'fname' => 'Nahid',
'lname' => 'Mahamud',
];
$newperson = $person;//copy by value
/**
* SHALLOW COPY IS MORE LIKE POINTER IN C
*/
$newperson = &$person;//cooy by reference/shallow copy -> changes value in both arrays
$newperson['lname'] = 'Hridoy';
print_r ($newperson);
print_r ($person);
[/code]
<strong>#Remove data from Associative Array:</strong> use <code>unset</code> to remove data from associative array
[code]
$person = [
'fname' => 'Nahid',
'lname' => 'Mahamud',
];
print_r($person);
unset($person['lname']);
print_r($person);
#Extractdata from An Array: use array_slice() to extract data from normal/associative array.
/**
* extract data from an array
*/
$prDetails = [
"Nahid",
"Mahamud",
8247,
"DRMC",
];
//$extractedData = array_slice($prDetails,2);
/**
* array_slice(array_name, from where to slice, how many items)
* true, preserve offset key of the actual array
*/
$extractedData = array_slice($prDetails,2,1,true);
print_r($extractedData);
/**
* EXTRACT DATA FROM ASSOCIATIVE ARRAY
*/
$personx = [
'fname' => 'Nahid',
'lname' => 'Mahamud',
'collegeNo' => 8247,
'homeTown' => 'Tangail',
'gneder' => 'Male'
];
$personExtractData = array_slice($personx,2,null,true);
print_r($personExtractData);
#Array_Splice():
/**
* array_splice()-> extract and remove data from an array
*/
$personRemoveData = array_splice($personx,2,2,true);
print_r($personRemoveData);
/**
* array_splice()-> extract and remove data from an array
* and then insert some data
*/
$personx2 = [
'fname' => 'Nahid',
'lname' => 'Mahamud',
'collegeNo' => 8247,
'homeTown' => 'Tangail',
'gneder' => 'Male'
];
$newInfo = [
'hobby' => 'coding',
'position' => 'CEO',
];
$personDataUpdated = array_splice($personx2,2,2,$newInfo);
print_r($personDataUpdated);
print_r($personx2);
#Sort In Array:
/** * SORT IN ARRAY * SORT DONOT PRESRVE KEY * Use asort() in order to preserve key * arsort() -> use in case you need reverse sort * ksort() -> use in case you need sorting based on key * krsort() -> use in case you need reverse sorting based on key */ $favFruits = ['apple','banana','orange','favOne'=>'guava','lichi','mango']; sort($favFruits); print_r($favFruits); asort($favFruits); print_r($favFruits); $randu = ['apple','Alpine','anaconda','Banana','Ballon','cat','Cow','zoo','Giraffe']; sort($randu); print_r($randu); //sort based on string and case insensetive sort($randu, SORT_STRING | SORT_FLAG_CASE); print_r($randu);
#Search In Array:
/**
* search in array
*/
$randu = ['apple','Alpine','anaconda','b'=>'Banana','Ballon','cat','zoo','Giraffe'];
if(in_array('zoo',$randu)){
echo "HURRAY!!! WE GOT IT";
}else {
echo "NOT FOUND";
}
echo "\n";
$searchPosition = array_search('zoo',$randu);
echo "We found it on ".$searchPosition."th position";
echo "\n";
/**
* search key in array
*/
if( key_exists('bx',$randu) ){
echo "KEY EXISTS";
} else {
echo "Key Not Found";
}
#Array Difference & Intersection:
/** * Identitify common element in array */ $ourNumber1 = [1,2,33,4,567,12,13,221,233]; $ourNumber2 = [11,122,31,04,567,112,123,221]; $common =array_intersect($ourNumber1,$ourNumber2); print_r($common); $ourFruit1 = ['a'=>'apple', 'b'=>'banana','l'=>'lemon','o'=>'orange']; $ourFruit2 = ['a'=>'apricut', 'b'=>'banana','LM'=>'lemon','o'=>'olive']; $commonf =array_intersect($ourFruit1,$ourFruit2); print_r($commonf); //ALSO CHECK WITH KEY $commonf2 =array_intersect_assoc($ourFruit1,$ourFruit2); print_r($commonf2); /** * CHECK DIFFERENCE IN AN ARRAY */ $diff = array_diff($ourFruit1,$ourFruit2); print_r($diff); //also check diff with key $diff = array_diff_assoc($ourFruit1,$ourFruit2); print_r($diff);
#Utility Functions Of Array:
/**
* UTILITY FUNCTIONS OF ARRAY
* array_walk() -> doesn't modify array
*/
$unumber = [1,23,2,22,11,3,32,12,11,8,47];
//will show square of aall elemnts
function numberSquare($num) {
printf("Sqaure of %d is %d \n",$num, $num*$num);
}
/**
* UTILITY FUNCTIONS OF ARRAY
* array_map() -> will modify array
*/
//will return cube
function numberCube($num) {
return $num*$num*$num;
}
array_walk($unumber,'numberSquare');
$newArray = array_map('numberCube', $unumber);
print_r($newArray);
/**
* UTILITY FUNCTIONS OF ARRAY
* array_filter() -> will update array
*/
//check even
function checkEven( $n ) {
$edata = (($n % 2) == 0) ? true:false;
return $edata;
}
//check odd
function checkOdd( $n ) {
$edata = (($n % 2) !== 0) ? true:false;
return $edata;
}
//here checkEven is a callback function
//here checkOdd is a callback function
$newArray = array_filter($unumber,'checkEven');
$newArray2 = array_filter($unumber,'checkOdd');
print_r($newArray);
print_r($newArray2);
/**
* you can treat any string as an array
*/
$personName = ['clerk','bruce','banner','barry','kal','tony'];
//check name by b
function checkNameByb( $name ){
return $name[0] == 'b';
}
$nameWithb = array_filter($personName,'checkNameByb');
print_r($nameWithb);
/**
* ARRAY UTILITY FUCNTION
* array_reduce -> will do operation on an array then will reduce it
*/
$rnumber = [1,2,3,4];
/**
* this fucntion will show sum
*/
function sum($oldVal = 0, $newVal) {
return $oldVal+$newVal;
}
/**
* this fucntion will show sum of even numbers
*/
function sumEven($oldVal = 0, $newVal) {
if( $newVal % 2 == 0 ){
return $oldVal+$newVal;
} else{
return $oldVal;
}
}
$sum = array_reduce($rnumber,'sum'); //sum is callback function
$sumE = array_reduce($rnumber,'sumEven'); //sumEven is callback function
echo $sum;
echo "\n";
echo $sumE;
#List Function In Array:
/**
* LIST FUCNTION IN ARRAY
*/
$studentDetails = [
"Nahid",
"Mahamud",
8247,
"DRMC",
];
list( $firstName, $lastName, $collegeNo, $college ) = $studentDetails;
echo $college;
#Range Function In Array:
/** * RANGE FUNCTION AND STEPPING IN ARRAY */ //will print 1 to 20 $numberRange = range(1,20); /** * range(frist,last,step) */ $numberRangeEven = range(1,20,3); print_r($numberRange); print_r($numberRangeEven);
#Shuffle In Array:
#Array Shuffle:
/**
* ARRRAY SHUFFLE
* normally will not preserve key in associative array
*/
$personx = [
'fname' => 'Nahid',
'lname' => 'Mahamud',
'collegeNo' => 8247,
'homeTown' => 'Tangail',
'gneder' => 'Male'
];
shuffle($personx);
print_r($personx);
/**
* WILL SHOW A RANDOM VALUE FROM AN ARRAY
*/
$personxr = [
'fname' => 'Nahid',
'lname' => 'Mahamud',
'collegeNo' => 8247,
'homeTown' => 'Tangail',
'gneder' => 'Male'
];
$key = array_rand($personxr);
echo $personxr[$key];
/**
* another way
* make a temporary array
*/
$_personxr = $personxr;
shuffle($_personxr);
print_r($_personxr);
#Remove Empty Values From Array:
$wp_day[] = get_field( 'w_day' ); //acf filed values -> from foreach loop to an array $unique_dates = array_unique($wp_day); //make the array unique $unique_dates = array_values(array_filter($unique_dates)); //remove empty values