• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP jak ujednolicić tablicę z tablicami

Konkurs Mistrz Programowania
0 głosów
480 wizyt
pytanie zadane 21 września 2019 w PHP przez BlvckFox Gaduła (4,240 p.)
edycja 21 września 2019 przez BlvckFox

Cześć, co trzeba zrobić żeby z takiej tablicy:
 

$results = [
    ['name' => 'something','type' => 'X'],
    ['name' => 'something', 'type' => 'X'],
    ['name' => 'soomething', 'type' => 'X'],
    ['name' => 'somethinggg', 'type' => 'Y']
];

Utworzyć coś takiego:
 

[
    [type=>'X'] => [
       [name => 'something'],
       [name => 'something'],
       [name => 'soomething']
    ],
    [type=>'Y'] => [
       [name => 'somethinggg']
    ]
]

Jest takie coś w ogole mozliwe w PHP? Ma to jakąś swoją nazwę?

komentarz 21 września 2019 przez Tomek Sochacki Ekspert (227,490 p.)
hmm, a kombinowaleś może w funkcją array_reduce?
komentarz 21 września 2019 przez BlvckFox Gaduła (4,240 p.)
Nie mam pojęcia jak można to zrobić za pomocą array_reduce, tworzyć tablicę z tablicą, nie mam pojęcia jak by to wyglądało. W javascripcie w obiektach byłoby łatwiej.
komentarz 23 września 2019 przez chmod96 Obywatel (1,380 p.)

@BlvckFox, Jedno pytanie mi się nasuwa, do czego zmierzasz z taką konwersją tablicy ? może jest inne lepsze rozwiązanie tego problemu.

1 odpowiedź

0 głosów
odpowiedź 21 września 2019 przez niezalogowany

W php co najwyżej coś takiego:

<?php
  $tab = [
    'X' => [
       ["name" => 'something'],
       ["name" => 'something'],
       ["name" => 'soomething']
    ],
    'Y' => [
       ["name" => 'somethinggg']
    ]
    ];
    echo $tab["X"][0]["name"];
?>

 

komentarz 21 września 2019 przez BlvckFox Gaduła (4,240 p.)
Jak osiagnąć taki efekt?
1
komentarz 21 września 2019 przez niezalogowany
<?php
$results = [
   ['name' => 'something','type' => 'X'],
   ['name' => 'something', 'type' => 'X'],
   ['name' => 'soomething', 'type' => 'X'],
   ['name' => 'somethinggg', 'type' => 'Y']
];    

$tab = array();
foreach($results as $result) {
   $tab[$result["type"]][]["name"] = $result["name"];
}
?>

 

komentarz 21 września 2019 przez BlvckFox Gaduła (4,240 p.)
Gdybym chciał iterować po takiej tablicy, jak to zrobić? Uznajmy, że nie znam wartości 'type'? array_values usuwa wartość całkowicie

Podobne pytania

0 głosów
1 odpowiedź 809 wizyt
pytanie zadane 31 maja 2020 w JavaScript przez rob Bywalec (2,440 p.)
0 głosów
2 odpowiedzi 819 wizyt
pytanie zadane 23 września 2019 w PHP przez BlvckFox Gaduła (4,240 p.)
0 głosów
1 odpowiedź 305 wizyt
pytanie zadane 20 lutego 2017 w PHP przez Protonit Mądrala (5,300 p.)

93,652 zapytań

142,574 odpowiedzi

323,089 komentarzy

63,167 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...