View Category
Define an empty list
Assign the variable
"list" to a list with no elements
php
$list = array();
Define a static list
Define the list
[One, Two, Three, Four, Five]
php
$list = array("One", "Two", "Three", "Four", "Five");
$list = array();
$list[] = "One";
$list[] = "Two";
$list[] = "Three";
$list[] = "Four";
$list[] = "Five";
$list[] = "One";
$list[] = "Two";
$list[] = "Three";
$list[] = "Four";
$list[] = "Five";
<?php
$list = new SplFixedArray(5);
$list[0] = "One";
$list[1] = "Two";
$list[2] = "Three";
$list[3] = "Four";
$list[4] = "Five";
?>
$list = new SplFixedArray(5);
$list[0] = "One";
$list[1] = "Two";
$list[2] = "Three";
$list[3] = "Four";
$list[4] = "Five";
?>
Join the elements of a list, separated by commas
Given the list
[Apple, Banana, Carrot] produce "Apple, Banana, Carrot"
php
$string = implode(", ", $fruits);
Join the elements of a list, in correct english
Create a function join that takes a List and produces a string containing an english language concatenation of the list. It should work with the following examples:
join(
join(
join(
join(
join(
[Apple, Banana, Carrot]) = "Apple, Banana, and Carrot"
join(
[One, Two]) = "One and Two"
join(
[Lonely]) = "Lonely"
join(
[]) = ""
php
function ImplodeToEnglish($array) {
// sanity check
if (!$array || !count ($array))
return "";
// get last element
$last = array_pop($array);
// if it was the only element - return it
if (!count ($array))
return $last;
return implode(", ", $array)." and ".$last;
}
//example
ImplodeToEnglish(array("Apple", "Banana")); // returns: Apple and Banana
// sanity check
if (!$array || !count ($array))
return "";
// get last element
$last = array_pop($array);
// if it was the only element - return it
if (!count ($array))
return $last;
return implode(", ", $array)." and ".$last;
}
//example
ImplodeToEnglish(array("Apple", "Banana")); // returns: Apple and Banana
Produce the combinations from two lists
Given two lists, produce the list of tuples formed by taking the combinations from the individual lists. E.g. given the letters
["a", "b", "c"] and the numbers [4, 5], produce the list: [["a", 4], ["b", 4], ["c", 4], ["a", 5], ["b", 5], ["c", 5]]
php
foreach ($short as $s) {
foreach ($long as $l) {
$list[] = array($l, $s);
}
}
foreach ($long as $l) {
$list[] = array($l, $s);
}
}
From a List Produce a List of Duplicate Entries
Taking a list:
Write the code to produce a list of duplicates in the list:
["andrew", "bob", "chris", "bob"]
Write the code to produce a list of duplicates in the list:
["bob"]
php
$arr = array('andrew', 'bob', 'chris', 'bob', 'chris', 'john', 'mary', 'lucy');
function match($a, $b)
{
// This is a separate function so you could include checking
// with loose comparisons or lowercase both strings, etc.
return $a === $b;
}
$results = array();
sort($arr);
for($i = 0; $i < count($arr) - 1; $i++)
{
if (match($arr[$i], $arr[$i+1]))
{
$results[] = $arr[$i];
$i++;
}
}
print_r($results);
function match($a, $b)
{
// This is a separate function so you could include checking
// with loose comparisons or lowercase both strings, etc.
return $a === $b;
}
$results = array();
sort($arr);
for($i = 0; $i < count($arr) - 1; $i++)
{
if (match($arr[$i], $arr[$i+1]))
{
$results[] = $arr[$i];
$i++;
}
}
print_r($results);
$arr = array('lucy', 'andrew', 'lucy', 'bob', 'chris', 'bob', 'chris', 'john', 'mary');
function match($a, $b)
{
// This is a separate function so you could include checking
// with loose comparisons or lowercase both strings, etc.
return $a === $b;
}
$results = array();
for($i = 0; $i < count($arr); $i++)
{
if (isset($results[$arr[$i]]))
{
$results[$arr[$i]]++;
}
else
{
$results[$arr[$i]] = 0;
}
}
$out = array();
foreach($results as $name => $count)
{
echo $name . ':' . $count . '<br />';
if ($count > 0)
{
$out[] = $name;
}
}
print_r($out);
function match($a, $b)
{
// This is a separate function so you could include checking
// with loose comparisons or lowercase both strings, etc.
return $a === $b;
}
$results = array();
for($i = 0; $i < count($arr); $i++)
{
if (isset($results[$arr[$i]]))
{
$results[$arr[$i]]++;
}
else
{
$results[$arr[$i]] = 0;
}
}
$out = array();
foreach($results as $name => $count)
{
echo $name . ':' . $count . '<br />';
if ($count > 0)
{
$out[] = $name;
}
}
print_r($out);
<?php
$array = array("andrew", "bob", "chris", "bob");
$counts = array_count_values($array);
$duplicates = array_filter(
array_unique($array),
function($key) use ($counts) {
return $counts[$key] > 1;
}
);
?>
$array = array("andrew", "bob", "chris", "bob");
$counts = array_count_values($array);
$duplicates = array_filter(
array_unique($array),
function($key) use ($counts) {
return $counts[$key] > 1;
}
);
?>
Fetch an element of a list by index
Given the list
[One, Two, Three, Four, Five], fetch the third element ('Three')
php
$list = array("One", "Two", "Three", "Four", "Five");
$three = $list[2];
$three = $list[2];
Fetch the last element of a list
Given the list
[Red, Green, Blue], access the last element ('Blue')
php
$list = array("Red", "Green", "Blue");
$last = array_pop($list);
// Be aware of that $list only contains two elements now - not three
$last = array_pop($list);
// Be aware of that $list only contains two elements now - not three
$list = array("Red", "Green", "Blue");
$last = $list[count($list)-1];
$last = $list[count($list)-1];
Find the common items in two lists
Given two lists, find the common items. E.g. given beans =
['broad', 'mung', 'black', 'red', 'white'] and colors = ['black', 'red', 'blue', 'green'], what are the bean varieties that are also color names?
php
$result = array_intersect($beans, $colors);
sort($result); // just to clean it up :)
sort($result); // just to clean it up :)
Display the unique items in a list
Display the unique items in a list, e.g. given ages =
[18, 16, 17, 18, 16, 19, 14, 17, 19, 18], display the unique elements, i.e. with duplicates removed.
php
$ages = array(18, 16, 17, 18, 16, 19, 14, 17, 19, 18);
$ages = array_unique($ages);
// be aware of that $ages[6] will print 14
$ages = array_unique($ages);
// be aware of that $ages[6] will print 14
Remove an element from a list by index
Given the list
[Apple, Banana, Carrot], remove the first element to produce the list [Banana, Carrot]
php
$list = array("Apple", "Banana", "Carrot");
unset($list[0]);
// Be aware of that $list[0] isn't set. "Banana" is still $list[1]
unset($list[0]);
// Be aware of that $list[0] isn't set. "Banana" is still $list[1]
$list = array("Apple", "Banana", "Carrot");
array_shift($list);
// Be aware of that $list[0] is set to "Banana"
array_shift($list);
// Be aware of that $list[0] is set to "Banana"
Remove the last element of a list
php
$list = array("Apple", "Banana", "Carrot");
unset($list[count($list)-1]);
// Be aware of that
// $list[] = "Orange";
// will be $list[3] and not $list[2]
unset($list[count($list)-1]);
// Be aware of that
// $list[] = "Orange";
// will be $list[3] and not $list[2]
$list = array("Apple", "Banana", "Carrot");
array_pop($list);
array_pop($list);
Rotate a list
Given a list
["apple", "orange", "grapes", "bananas"], rotate it by removing the first item and placing it on the end to yield ["orange", "grapes", "bananas", "apple"]
php
$list = array("Apple", "Orange", "Grapes", "Banana");
$first = array_shift($list); //get and remove the first
array_push($list, $first); //prepend the $first to the array
$first = array_shift($list); //get and remove the first
array_push($list, $first); //prepend the $first to the array
Gather together corresponding elements from multiple lists
Given several lists, gather together the first element from every list, the second element from every list, and so on for all corresponding index values in the lists. E.g. for these three lists, first =
['Bruce', 'Tommy Lee', 'Bruce'], last = ['Willis', 'Jones', 'Lee'], years = [1955, 1946, 1940] the result should produce 3 actors. The middle actor should be Tommy Lee Jones.
php
for ($i = 0; $i < $count; $i++) {
$list[] = array($first[$i], $last[$i], $years[$i]);
}
$list[] = array($first[$i], $last[$i], $years[$i]);
}
$list = array_map(NULL, $first, $last, $years);
List Combinations
Given two source lists (or sets), generate a list (or set) of all the pairs derived by combining elements from the individual lists (sets). E.g. given suites =
['H', 'D', 'C', 'S'] and faces = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'], generate the deck of 52 cards, confirm the deck size and check it contains an expected card, say 'Ace of Hearts'.
php
foreach ($suites as $suite) {
foreach ($faces as $face) {
$cards[] = $suite.$face;
}
}
if (count($cards) == 52) {
echo "The deck have all 52 cards.\n";
}
if (in_array("HA", $cards)) {
echo "The deck contains 'Ace of Heart'\n";
} else {
echo "The deck doesn't contain 'Ace of Heart'\n";
}
foreach ($faces as $face) {
$cards[] = $suite.$face;
}
}
if (count($cards) == 52) {
echo "The deck have all 52 cards.\n";
}
if (in_array("HA", $cards)) {
echo "The deck contains 'Ace of Heart'\n";
} else {
echo "The deck doesn't contain 'Ace of Heart'\n";
}
Perform an operation on every item of a list
Perform an operation on every item of a list, e.g.
for the list
the list of sizes of the strings, e.g.
for the list
["ox", "cat", "deer", "whale"] calculate
the list of sizes of the strings, e.g.
[2, 3, 4, 5]
php
$sizes = array_map('strlen', array('ox', 'cat', 'deer', 'whale'));
Split a list of things into numbers and non-numbers
Given a list that might contain e.g. a string, an integer, a float and a date,
split the list into numbers and non-numbers.
split the list into numbers and non-numbers.
php
$now = new DateTime();
$things = array('hello', 25, 3.14, $now);
$numbers = array_filter($things, 'is_numeric');
$others = array();
foreach ($things as $thing) {
if (!in_array($thing, $numbers)) {
$others[] = $thing;
}
}
$things = array('hello', 25, 3.14, $now);
$numbers = array_filter($things, 'is_numeric');
$others = array();
foreach ($things as $thing) {
if (!in_array($thing, $numbers)) {
$others[] = $thing;
}
}
Test if a condition holds for all items of a list
Given a list, test if a certain logical condition (i.e. predicate) holds for all items of the list.
Test if a condition holds for any items of a list
Given a list, test if a certain logical condition (i.e. predicate) holds for any items of the list.
