for - php add object to array




Como percorrer um array associativo e obter a chave? (8)

A seguir, você poderá obter a chave e o valor ao mesmo tempo.

foreach ($arr as $key => $value)
{
  echo($key);
}

Meu array associativo:

$arr = array(
   1 => "Value1",
   2 => "Value2",
   10 => "Value10"
);

Usando o seguinte código, $v é preenchido com valores de $arr

 foreach($arr as $v){
    echo($v);    // Value1, Value2, Value10
 }

Como faço para obter as chaves do $arr ?

 foreach(.....){
    echo($k);    // 1, 2, 10
 }

Ah eu achei no manual do PHP .

foreach ($array as $key => $value){
    statement
}

A chave do elemento atual será atribuída à variável $ key em cada loop.


Eu uso o seguinte loop para obter a chave e valor de um array associativo

foreach ($array as $key => $value)
{
  echo "<p>$key = $value</p>";
}

Ninguém respondeu com loop regular? Às vezes eu acho mais legível e prefiro for mais foreach
Então aqui está:

$array = array('key1' => 'value1', 'key2' => 'value2'); 

$keys = array_keys($array);

for($i=0; $i < count($keys); ++$i) {
    echo $keys[$i] . ' ' . $array[$keys[$i]] . "\n";
}

/*
  prints:
  key1 value1
  key2 value2
*/

Se você usar a função foreach() aninhada, as chaves da matriz externa serão impressas novamente e novamente até que os valores da matriz interna terminem.

<?php 

$myArray = ['key_1' => ['value_1', 'value12'],
            'key_2' => ['value_2', 'value22'], 
            'key_3' => ['value_3', 'value32']
           ];

$keysOfMyArray = array_key($myArray);

for ($x = 0; $x < count($myArray); $x++){
       print "\t".$keysOfMyArray[$x]."\t\t".implode("\t\t",$myArray[$keysOfMyArray[$x]]."\n");
}

?>

Use $key => $val para obter as chaves:

<?php

$arr = array(
    1 => "Value1",
    2 => "Value2",
    10 => "Value10",
);

foreach ($arr as $key => $val) {
   print "$key\n";
}

?>

foreach($array as $k => $v)

Onde $ k é a chave e $ v é o valor

Ou se você só precisa das chaves use array_keys ()


 foreach($arr as $key=>$value){
    echo($key);    // key
 }




associative-array