,

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){ ... }