Portál AbcLinuxu, 30. října 2025 19:37
$array = array('aaa' => array('a' => 'a-aaa', 'b' => 'b-aaa'),
'bbb' => array('a' => 'a-bbb', 'b' => 'b-bbb'),
'ccc' => array('a' => 'a-ccc', 'b' => 'b-ccc'),
'ddd' => array('a' => 'a-ddd', 'b' => 'b-ddd'),
'eee' => array('a' => 'a-ccc', 'b' => 'b-eee'));
Děkuji za pomoc
$array = $pdo->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP);Pokud to nebude vyhovovat, tak prostě volej obyčejné fetch a skládej si to pole dle libosti.
Postav dotaz tak, aby první sloupeček obsahoval klíče vnějšího pole ('aaa') a pak použij:Když použiju tvé řešení které je mimo jiné parádní$array = $pdo->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP);
$array = $pdo->fetchAll(PDO::FETCH_ASSOC | PDO::FETCH_GROUP);dostanu takové pole
array('key1' => array(0 => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),),
'key2' => array(0 => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),),
'key3' => array(0 => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),),
)
Jak ale můžu získat jen tohle? Bez tohoto: "array(0 =>"
a výsledek by pak byl takovej
array('key1' => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),
'key2' => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),
'key3' => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),
)
Díky
$results = array_map('reset', $results);
Sice to je celkem krátké, ale přináší to zbytečnou režii navíc.
Otázkou je, o kolik je fetchAll s FETCH_GROUP rychlejší, než volání obyčejného fetch a vlastního skládání pole.
<php
$array = array();
foreach ($pdo->query('SELECT aaa, a, b FROM Array', PDO::FETCH_ASSOC) as $row) {
$aaa = $row['aaa'];
$array[$aaa] = array('a' => $row['a'], 'b' => $row['b']);
}
Vypadá to podivně, ale kdybys byl vymyslel lepší názvy proměnných, bylo by to vypadalo lépe.
Časem určitě zjistíš, že tohle nepotřebuješ a že se to dá udělat mnohem jednodušeji, když trochu změníš vstupní požadavky. Už pojmenování slovníku $array zní podivně. Podivné je i to, že chceš slovník a ne seznam.
Možná by se pro tento účel mnohem lépe hodilo XML nebo INIFILE.
Podivné je i to, že chceš slovník a ne seznam.Můžeš to prosím upřesnit?
Možná by se pro tento účel mnohem lépe hodilo XML nebo INIFILE.Jako že to mám uložit místo do mysql do XML souboru?
array('key1' => array(0 => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),),
'key2' => array(0 => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),),
'key3' => array(0 => array('sloupec1' => 'data1', 'sloupec2' => 'data2', 'sloupec3' => 'data3', 'sloupec4' => 'data4',),),
)
foreach ($array as $row) {
echo $row['sloupec1']; //data1
echo $row['sloupec2']; //data2
echo ??? //key1
}
foreach ($array as $key => $row)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.