Sea
1
Salutare,
In urma interogarii codului sql am ca rezultat urmatorul array:
Array
(
[0] => Array
(
[IdTemplate] => 1
[Intrebare] => Intrebarea 1
)
[1] => Array
(
[IdTemplate] => 1
[Intrebare] => Intrebarea 2
)
[2] => Array
(
[IdTemplate] => 1
[Intrebare] => Intrebarea 3
)
[3] => Array
(
[IdTemplate] => 6
[Intrebare] => Intrebarea 1
)
[4] => Array
(
[IdTemplate] => 6
[Intrebare] => Intrebarea 2
)
)
Cum pot procesa array-ul meu sa arate sub forma aceasta:
Array
(
[1] => Array
(
[0]=>'Intrebarea 1'
[1]=>'Intrebarea 2'
[2]=>'Intrebarea 3'
)
[6] => Array
(
[0]=>'Intrebarea 1'
[1]=>'Intrebarea 2'
)
)
Multumesc!
serghei
(Serghei Amelian)
2
Pai de ce nu ordonezi direct in SQL?
zshare
(Eduard-Dan Stănescu)
3
Pai tu ai facut un SELECT * FROM TABLE
si i-ai dat var_dump()
.
Ce te astepti sa-ti afiseze daca nu pui nicio conditie in interogarea facuta ?
Sea
4
Codul meu php arata asa:
$sql = "SELECT
IdTemplate,
Intrebare
FROM table";
$conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->query($sql);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
In urma lui var_dump() am primit ca rezultat array-ul din prima postare.
serghei
(Serghei Amelian)
5
Trebuie oricum să bagi în SQL şi ORDER BY IdTemplate, Intrebare
, de data asta doar s-a nimerit să-ţi dea rezultatele în ordine.
Iar ca să aranjezi array-ul, probabil iti trebuie ceva de genul asta:
<?php
$input = array(
array("IdTemplate" => 1, "Intrebare" => "Intrebarea 1"),
array("IdTemplate" => 1, "Intrebare" => "Intrebarea 2"),
array("IdTemplate" => 1, "Intrebare" => "Intrebarea 3"),
array("IdTemplate" => 6, "Intrebare" => "Intrebarea 1"),
array("IdTemplate" => 6, "Intrebare" => "Intrebarea 2"),
);
print_r($input);
echo "<hr>";
$output = array();
array_walk($input, function($item) use(&$output) {
$IdTemplate = $item["IdTemplate"];
$Intrebare = $item["Intrebare"];
$output[$IdTemplate][] = $Intrebare;
});
print_r($output);
?>
Daca nu vrei sa modifici query-ul, poti face ceva de genul asta:
$output = array();
foreach ($rows as $row) {
if (empty($output[$row['IdTemplate']])) {
$output[$row['IdTemplate']] = array();
}
$output[$row['IdTemplate']][] = $row['Intrebare'];
}
print_r($output);
1 Like