vacio - recorrer array asociativo php




+ operador para matriz en PHP? (6)

  1. La operación Array plus trata a todas las matrices como una matriz assoc.
  2. Cuando se mantenga el conflicto clave durante el más, el valor izquierdo (anterior)

Publiqué el código a continuación para aclarar las cosas.

$a + $b = array_plus($a, $b)

function array_plus($a, $b){
    $results = array();
    foreach($a as $k=>$v) if(!isset($results[$k]))$results[$k] = $v;
    foreach($b as $k=>$v) if(!isset($results[$k]))$results[$k] = $v;
    return $results;
}
$test = array('hi');
$test += array('test','oh');
var_dump($test);

¿Qué significa + para array en PHP?


Anexará la nueva matriz a la anterior.


Cuidado con las teclas numéricas, si deben conservarse o si no desea perder nada

$a = array(2 => "a2", 4 => "a4", 5 => "a5");
$b = array(1 => "b1", 3 => "b3", 4 => "b4");

Unión

print_r($a+$b);
Array
(
    [2] => a2
    [4] => a4
    [5] => a5
    [1] => b1
    [3] => b3
)

unir

print_r(array_merge($a, $b));
Array
(
    [0] => a2
    [1] => a4
    [2] => a5
    [3] => b1
    [4] => b3
    [5] => b4
)

El mejor ejemplo que encontré para usar esto está en una matriz de configuración.

$user_vars = array("username"=>"John Doe");
$default_vars = array("username"=>"Unknown", "email"=>"[email protected]");

$config = $user_vars + $default_vars;

El $default_vars , como sugiere, es la matriz de valores predeterminados. La matriz $user_vars sobrescribirá los valores definidos en $default_vars . Todos los valores perdidos en $user_vars ahora son los valores predeterminados de $default_vars .

Esto print_r como:

Array(2){
    "username" => "John Doe",
    "email" => "[email protected]"
}

¡Espero que esto ayude!


Este operador toma la unión de dos matrices (igual que array_merge, excepto que con array_merge las claves duplicadas se sobrescriben).

La documentación para operadores de array se encuentra documentation .


$var1 = "example";
$var2 = "test";
$output = array_merge((array)$var1,(array)$var2);
print_r($output);

Matriz ([0] => ejemplo [1] => prueba)





arrays