Adăugarea dinamică de date la o matrice (Programare, Php)

sikas a intrebat.

Vreau să adaug date la un array în mod dinamic. Cum pot face acest lucru? Exemplu

$arr1 = [
    'aaa',
    'bbb',
    'ccc',
];
// How can I now add another value?

$arr2 = [
    'A' => 'aaa',
    'B' => 'bbb',
    'C' => 'ccc',
];
// How can I now add a D?

Comentarii

10 răspunsuri
TimCinel

Există destul de multe moduri de a lucra cu array-uri dinamice în PHP. inițializați un array:

$array = array();

Adăugați la o matrice:

$array[] = "item"; // for your $arr1 
$array[$key] = "item"; // for your $arr2
array_push($array, "item", "another item");

Eliminați dintr-o matrice:

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

Există o mulțime de alte moduri, acestea sunt doar câteva exemple.

Comentarii

  • Vreau doar să adaug ceva. funcția array_push ar trebui să fie folosită doar pentru array-uri mari, așa cum este descris în descriere. Preferați întotdeauna $array[] = „new item” pentru inserții mici. php.net/manual/ro/function.array-push.php –  > Por GitCommit Victor B..
  • doar pentru a adăuga la răspunsul tău foarte bun, $array = []; este, de asemenea, o opțiune pentru inițializarea array-ului –  > Por João Pimentel Ferreira.
NikiC
$array[] = 'Hi';

împinge în partea de sus a matricei.

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

stabilește un anumit indice.

Himadri

Să presupunem că ați definit o matrice goală:

$myArr = array();

Dacă doriți să adăugați pur și simplu un element, de exemplu, „New Element to Array”, scrieți

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

dacă apelați datele din baza de date, codul de mai jos va funcționa bine

$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;
   }
}

Comentarii

  • De unde vedeți că sunt valorile $element și $table SELECTed ? –  > Por Mohan Wijesena.
Quy Le

Ar trebui să utilizați metoda array_push pentru a adăuga o valoare sau o matrice la array există

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

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

Mewp

Ca aceasta?:

$array[] = 'newItem';

Gordon

În plus față de accesarea directă a tabloului, există, de asemenea, și

array_push – Împingeți unul sau mai multe elemente la sfârșitul array-ului

Dherya
$dynamicarray = array();

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

Comentarii

  • Vă rugăm să includeți o explicație împreună cu răspunsul dumneavoastră. –  > Por Jonathan Lam.
ShivarajRH

Adăugarea dinamică a elementelor de matrice la o matrice și adăugarea unui nou element la o matrice

$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);

majick

doar pentru distracție…

$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);

Joseph Brokefoot Williams

Cea mai rapidă cale cred

       $newArray = array();

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

Tags: