Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana struktury tablicy
Forum PHP.pl > Forum > PHP
damianooo
Witam , potrzebuję zmienić nieco istniejącą tablicę

Obecnie mam taką:

  1. $currentTable = array(
  2. 2 => array(
  3. 'value' => 23
  4. ),
  5. 5 => array(
  6. 'value' => 34
  7. ),
  8. 12 => array(
  9. 'value' => 56
  10. ),
  11. );


a potrzebuję mieć taką:

  1. $newTable = array(
  2. 2 => array(
  3. 'value' => 23,
  4. 'some' => 'costam'
  5. ),
  6. 5 => array(
  7. 'value' => 34,
  8. 'some' => 'costam'
  9. ),
  10. 12 => array(
  11. 'value' => 56,
  12. 'some' => 'costam'
  13. ),
  14. );


Próbowałem to zrobić tak:

  1. for ($i = 0; $i < count($currentTable); $i++) {
  2. $mySuperTable[$currentTable[$i]]['value'][] = $currentTable[$i]['value'];
  3. $mySuperTable[$currentTable[$i]]['some'][] = 'costam';
  4. }


ale nie wiem jak wstawić poprawny index. Jak widać w tablicy $currentTable mam indeksy takie: 2,5,12 a nie takie 0,1,2

proszę o podpowiedź,

dzięki








Ok, już wiem jak to trzeba było rozwiązać :

  1. $myKeysArray = array_keys($currentTable);
  2.  
  3. for ($i = 0; $i < count($myKeysArray); $i++) {
  4. $mySuperTable[$myKeysArray[$i]]['value'][] = $currentTable[$myKeysArray[$i]]['value'];
  5. $mySuperTable[$myKeysArray[$i]]['some'][] = 'costam';
  6. }


Chyba to jedyne rozsądne rozwiązanie . Czy można inaczej , prościej ?
redeemer
Za pomocą foreach:
  1. foreach($tablica as $key => $value) {
  2. $tablica[$key]['some'] = 'costam';
  3. }
A jak koniecznie chcesz mieć to w nowej tablicy:
  1. $nowaTablica = $tablica;
  2. foreach($nowaTablica as $key => $value) {
  3. $nowaTablica[$key]['some'] = 'costam';
  4. }
damianooo
zgadza się ... ale przekombinowałem, masakra ...

wielkie dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.