Вопрос по php, arrays, foreach – PHP: получить ключ из массива в цикле foreach

25

print_r ($ samplearr) печатает следующее для моего массива, содержащего 3 элемента:

Array ( [4722] => Array ( [value1] => 52 [value2] => 46 )
Array ( [4922] => Array ( [value1] => 22 [value2] => 47 )
Array ( [7522] => Array ( [value1] => 47 [value2] => 85 )

Я хочу поместить их в таблицу HTML, чтобы я выполнял foreach, но он делал не то, что ожидал:

foreach($samplearr as $item){
     print "<tr><td>" . key($item) . "</td><td>" . $samplearr['value1'] . "</td><td>" . $samplearr['value2'] . "</td></tr>";
}

Который возвращается:

<tr><td>value1</td><td>52</td><td>46</td></tr>

Это будет первый вывод, который я хочу:

<tr><td>4722</td><td>52</td><td>46</td></tr>

Какую функцию мне нужно использовать вместо ключа ($ item), чтобы получить 4722?

Ваш Ответ

3   ответа
2

использованиедля каждого с ключом и значением.

Пример:

foreach($samplearr as $key => $val) {
     print "<tr><td>" 
         . $key 
         . "</td><td>" 
         . $val['value1'] 
         . "</td><td>" 
         . $val['value2'] 
         . "</td></tr>";
}
72

Попробуй это:

foreach($samplearr as $key => $item){
  print "<tr><td>" 
      . $key 
      . "</td><td>"  
      . $item['value1'] 
      . "</td><td>" 
      . $item['value2'] 
      . "</td></tr>";
}
... или вы можете просто сохранить ссылку&$item и не копировать переменную, также иногда получение array_keys хуже по производительности, чем просто пройти через все это "как есть" :-)
Если у вас нет элемента nedd $. Вы могли бы насforeach(array_keys($arr) as $key){}
0

вам нужны вложенные циклы foreach

foreach($samplearr as $key => $item){
   echo $key;
    foreach($item as $detail){
       echo $detail['value1'] . " " . $detail['value2']
     }
 }

Похожие вопросы