2010-07-24 24 views
29

Quiero agregar datos a una matriz dinámicamente.Agregar datos dinámicamente a una matriz

+15

Oye mira, hay una documentación matriz PHP: http : //php.net/manual/en/language.types.array.php (primer golpe al buscar 'php array') –

Respuesta

76

hay un buen algunas formas de trabajar con matrices dinámicas en PHP. Inicializar una matriz:

$array = array(); 

Añadir a una matriz:

$array[] = "item"; 
$array[$key] = "item"; 
array_push($array, "item", "another item"); 

Eliminar de una matriz:

$item = array_pop($array); 
$item = array_shift($array); 
unset($array[$key]); 

Hay muchas más formas, estos son sólo algunos ejemplos.

+0

Solo quiero agregar algo. La función array_push solo debe usarse para grandes arreglos como se describe en la descripción. Siempre prefiera $ array [] = "nuevo elemento" para inserciones pequeñas. http://php.net/manual/en/function.array-push.php – TivBroc

+0

solo para agregar a su muy buena respuesta, '$ array = [];' también es una opción para la inicialización de la matriz –

8
$array[] = 'Hi'; 

empuja en la parte superior de la matriz.

$array['Hi'] = 'FooBar'; 

establece un índice específico.

3

gusta esta ?:

$array[] = 'newItem'; 
1

En sirvieron para acceder directamente a la matriz, también hay

array_push - Inserta uno o más elementos al final de la matriz

6

Digamos que usted ha definido una matriz vacía:

$myArr = array(); 

Si desea simplemente agregar un elemento, por ejemplo, 'Nuevo elemento al array', escribir

$myArr[] = 'New Element to Array'; 

si está llamando a los datos de la base de datos, a continuación código funciona bien

$sql = "SELECT $element FROM $table"; 
$query = mysql_query($sql); 
if(mysql_num_rows($query) > 0)//if it finds any row 
{ 
    while($result = mysql_fetch_object($query)) 
    { 
     //adding data to the array 
     $myArr[] = $result->$element; 
    } 
} 
+0

¿Desde dónde ve los valores $ element y $ table son ** SELECT ** ed? –

0

Adición de elementos de la matriz de forma dinámica a una matriz y la adición de nuevos elementos a una matriz

$samplearr=array(); 
$count = 0; 
foreach ($rslt as $row) { 
     $arr['feeds'][$count]['feed_id'] = $row->feed_id; 
     $arr['feeds'][$count]['feed_title'] = $row->feed_title; 
     $arr['feeds'][$count]['feed_url'] = $row->feed_url; 
     $arr['feeds'][$count]['cat_name'] = $this->get_catlist_details($row->feed_id); 
     foreach ($newelt as $cat) { 
      array_push($samplearr, $cat);    
     } 
     ++$count; 
} 
$arr['categories'] = array_unique($samplearr); //,SORT_STRING 

$response = array("status"=>"success","response"=>"Categories exists","result"=>$arr); 
4

debe utilizar el método array_push añadir Valu e existe o matriz a matriz

$stack = array("orange", "banana"); 
array_push($stack, "apple", "raspberry"); 
print_r($stack); 

/** GENERATED OUTPUT 
Array 
(
    [0] => orange 
    [1] => banana 
    [2] => apple 
    [3] => raspberry 
) 
*/ 
0

sólo por diversión ...

$array_a = array('0'=>'foo', '1'=>'bar'); 
$array_b = array('foo'=>'0', 'bar'=>'1'); 

$array_c = array_merge($array_a,$array_b); 

$i = 0; $j = 0; 
foreach ($array_c as $key => $value) { 
    if (is_numeric($key)) {$array_d[$i] = $value; $i++;} 
    if (is_numeric($value)) {$array_e[$j] = $key; $j++;} 
} 

print_r($array_d); 
print_r($array_e); 
0

La forma más rápida creo

 $newArray = array(); 

for($count == 0;$row = mysql_fetch_assoc($getResults);$count++) 
    { 
    foreach($row as $key => $value) 
    { 
    $newArray[$count]{$key} = $row[$key]; 
    } 
} 
1
$arra=array(); 

for($i=0;i<10;$i++) 
{ 
    $arra[$i]=$i; 
} 
+0

Por favor incluya una explicación con su respuesta. –

Cuestiones relacionadas