PHP:Arrays
Contents |
REMOVING DUBLE VALUES
$result = array_unique($array);
COUNTING ENTRIES
$result = count($array);
INCLUDING A VALUE/ARRAY IN AN ARRAY
#1 - outside function
================* FUNCTION *================
/**
* @return array
* @param array $src
* @param array $in
* @param int|string $pos = if $pos == '-0', merge in the end
*/
function array_push_before($src,$in,$pos){
if('-0'==$pos){$R=array_merge($src, $in);}
elseif(is_int($pos)){$R=array_merge(array_slice($src,0,$pos), $in, array_slice($src,$pos));}
else{
foreach($src as $k=>$v){
if($k==$pos)$R=array_merge($R,$in);
$R[$k]=$v;
}
}return $R;
}
============================================
//example
$x = array_push_before($src,$in,1);
/* array_push_before, key array, before index insert
print_r($x);
array(5) {
["a"]=>
string(1) "A"
["x"]=>
string(1) "X"
["y"]=>
string(1) "Y"
["b"]=>
string(1) "B"
["c"]=>
string(1) "C"
}*/
#2 - inner function
array_push ( array &$array, mixed $var [, mixed $...] )
REMOVING AN ELEMENT
unset($array['x']);
MERGING ARRAYS
//example
Exemplo de array_merge()
$array1 = array("cor" => "vermelho", 2, 4);
$array2 = array("a", "b", "cor" => "verde", "forma" => "trapezoide", 4);
$result = array_merge($array1, $array2);
print_r($result);
$result would be:
Array ( [cor] => verde [0] => 2 [1] => 4 [2] => a [3] => b [forma] => trapezoide [4] => 4 )
CONVERTING ARRAY INTO XML
================* FUNCTION *================
function array_xml($array, $num_prefix = "num_")
{
if(!is_array($array)) // text
{
return $array;
}
else
{
foreach($array as $key=>$val) // subnode
{
$key = (is_numeric($key)? $num_prefix.$key : $key);
$return.="<".$key.">".array_xml($val, $num_prefix)."</".$key.">";
}
}
return $return;
}
============================================
//example:
$array[0][0] = 1;
$array[0]['test'] = "test";
$array['test1']['test2'] = "test";
$array['test'][0] = "test";
$array['test'][1]['test_x'] = $array;
print"<xml>";
print array_xml($array);
print"</xml>";
CHANGING ALL KEYS CASE
array_change_key_case( array $input [,$case] )
$case CASE_UPPER or CASE_LOWER (default)
SORTING ARRAYS
//example:
$frutas = array("d" => "limao", "a" => "laranja", "b" => "banana", "c" => "melancia");
asort($frutas);
reset($frutas);//reset after sorting
while (list($chave, $valor) = each($frutas)) {
echo "$chave = $valor\n";
}
Result:
b = banana a = laranja d = limao c = melancia
CHECKING IF KEY EXISTS
//example:
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
SETTING AN ARRAY
$result=array('a'=>"A",'b'=>"B",'c'=>"C");
# OR
$result['a']='A';
$result['b']='B';
Using list()
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
Using explode()
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
READING AN ARRAY
while (list($key, $val) = each($value)){ ... }
foreach($value as $key=> $val){ ... }
foreach($value as $val){ ... }